【发布时间】:2013-06-18 03:05:24
【问题描述】:
我想用this.get('controllers.pack.query');来获取
App.PackQueryController 在 App.PackController 中,但失败了。
我认为问题在于 Ember 使用 pack 而不是 pack.query 作为 controllerName
当它试图获取控制器时。
虽然我可以通过this.controllerFor('pack.query')获得控制器,
但 Ember 表示已弃用,请改用 needs
我的路由器地图如下所示,我在App.PackController 中定义了needs: ['pack.query']
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
}
});
【问题讨论】:
标签: controller ember.js nested-routes