Ember.js Wie bekomme ich Controller in Bedürfnisse, die ControllerName verschachtelt ist
Ich möchte benutzenthis.get('controllers.pack.query');
bekommenApp.PackQueryController
imApp.PackController
, aber scheiterte.
Ich denke, das Problem ist die Verwendung von Emberpack
nichtpack.query
wiecontrollerName
wenn es versucht, den Controller zu bekommen. Obwohl ich den Controller durch kriegen kannthis.controllerFor('pack.query')
, aber Ember sagt, es sei veraltet, bitte benutzeneeds
stattdessen
Meine Router-Map gefällt unten und ich habe definiertneeds: ['pack.query']
imApp.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
}
});