ember.js为什么需要ember.select选项值需要一个itemController



在很多摆弄之后,我意识到我需要在我的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中拥有该属性。

最新更新