我想使用this.get('controllers.pack.query');
獲取 App.PackQueryController
在App.PackController
,但失敗。Ember.js如何獲取需要嵌套的控制器controllerName
我認爲這個問題是灰燼使用pack
不pack.query
作爲controllerName
當它試圖獲取控制。 雖然我可以通過this.controllerFor('pack.query')
, 得到控制,但灰燼說,它已被棄用,請使用needs
代替
我的路由器地圖喜歡下面,我已經在App.PackController
App.Router.map(function() {
this.resource('pack', function() {
this.route('index', {path: '/:pack_id'})
this.route('query');
});
});
App.PackController = Ember.ObjectController.extend({
needs: ['pack.query'],
queryPack: function() {
var packQueryCtrller = this.get('controllers.pack.query');
Ember.debug('packQueryCtrller: ' + packQueryCtrller);
//DEBUG: packQueryCtrller: undefined
packQueryCtrller.queryPack(); //faild packQuery is undefined
}
});
App.PackQueryController = Ember.ArrayController.extend({
queryPack: function (queryKey) {
//...do query pack
}
});
這確實不工作post ember-cli 0.2.3。請參閱@rog的解決方案。 –