2014-01-22 66 views
1

經過大量的擺弄,我意識到我需要在我的ArrayController'Markets'中指定itemcontroller。需要訪問ObjectController'Market'中的計算屬性。Ember.js爲什麼需要itemcontroller與Ember.Select選項值

我的問題是,爲什麼這需要?因爲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"}} 

市場ObjectController

// controllers/market.js 
nameWithTime: function() { 
    return this.get('name') + ' (' + this.get('time') + ')'; 
}.property('name', 'time') 

的市場ArrayController

// controllers/markets.js 
itemController: 'market' // Why needed? 

這個問題只能問爲什麼指定itemcontroller需要在Ember.js這種方式的原因。感謝任何清理!

+0

你可以在jsbin中發佈你的代碼嗎? – jacquard

回答

1

ObjectController是在我的感知鏈接到相應的ArrayController?

絕不會這樣做,而且這樣的行爲沒有記錄在任何地方。

沒有ArrayController默認情況下會鏈接itemController,ArrayController的itemController的默認值是null請參閱here

如果您不希望marketController內的計算屬性更好,您可以在marketModel中擁有該屬性。

+0

啊哈,但它們在使用正確的主/子模板設置時「連接」。但是,這是由路由器完成的。現在很清楚,謝謝! – DelphiLynx

相關問題