在很多摆弄之后,我意识到我需要在我的ArrayController" Markets"中指定一个ItemController。需要访问ObjectController"市场"中的计算属性。
我的问题是,为什么需要这?因为我的感知链接到相应的ArrayController?
我在应用程序路由中设置了控制器
// routes/application.js
model: function() {
this.controllerFor('markets').set('model', this.store.find('market'));
}
ember.select在.hbs文件中
// views/article/someViewForARoute.hbs
{{view Ember.Select contentBinding="controller.controllers.markets"
optionLabelPath="content.nameWithTime" optionValuePath="content.id"}}
市场对象controller
// controllers/market.js
nameWithTime: function() {
return this.get('name') + ' (' + this.get('time') + ')';
}.property('name', 'time')
市场ArrayController
// controllers/markets.js
itemController: 'market' // Why needed?
这个问题仅在问为什么在ember.js中需要以这种方式指定ItemController的原因。感谢您的任何澄清!
objectcontroller在我的感知中链接到相应的arraycontroller?
绝不会这样做,并且在任何地方都没有记录这种行为。
没有ArrayController将具有默认情况下链接的ItemController,ArrayController的itemController的默认值是null
请参阅此处。
如果您不希望marketController
内的计算属性,则可以在marketModel
中拥有该属性。