0

我正在尝试让 Ember.Select 工作并且快到了。我举了一个例子:http ://exmer.com/selecttest/pages

要查看我的问题,请单击一些最近的页面,然后单击编辑。选择未通过 获取模型contentBinding="controllers.modelnames"。如果您单击模型名称路由并再次编辑一些最近的页面,它会正常工作,因为现在我们获取了模型名称。我也许可以自己从页面控制器中获取模型名称,但这在我看来更像是一个 hack。

来源在https://github.com/broerse/ember-select-test(它在没有 CouchDB 的情况下运行)

所以我的问题是:使用 Ember.Select 和 Ember-CLI 的正确方法是什么

4

2 回答 2

4

了解 ember 工作流程在这里非常重要。当您导航到 URL 时,Ember 会解析 URL 并将其映射到您的路由器。此时 Ember 知道它需要从作为 URL 一部分的每个资源/路由中获取模型。一旦它获取了所有这些模型,它就会用相关的控制器来装饰它们。这在这里描述了您的问题所在。仅使用控制器不会导致获取模型。您正在使用needs的控制器不是路由器中的父/祖先,因此您不能保证它会被填充。您需要手动获取模型并将其存储在另一个控制器上,或者获取模型并将其存储在当前控制器上,以确保在您访问该路由时它存在。

于 2014-10-11T15:26:31.283 回答
0

Ember select 在任何地方(无论是否为 ember cli)都相同,无论是 ember 数据还是其他库或只是 pojos。

hbs {{view 'select' content=model optionValuePath='content.id' optionLabelPath='content.name' selection=selectedModel}}

这意味着你的模型有一个 id 属性和一个 name 属性。该模型将从路由中填充,如果它是辅助模型,您可以this.modelFor在路由中使用并将其设置为路由中控制器上的不同属性setupController

Ember select 的问题在于性能并且它不是一个组件。

于 2014-10-13T12:10:15.503 回答