Voglio utilizzare this.get('controllers.pack.query');
per ottenere App.PackQueryController
in App.PackController
, ma non è riuscito.Ember.js Come ottenere controller nei bisogni che è nested controller Nome
Credo che il problema è Ember usare pack
non pack.query
come controllerName
quando si cerca di ottenere il controllo. Anche se posso ottenere il controller da this.controllerFor('pack.query')
, ma Ember dice che è deprecato, utilizzare needs
invece
La mia mappa router piace qui sotto e ho definito needs: ['pack.query']
in 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
}
});
Questo fa non funziona post ember-cli 0.2.3. Guarda la risposta di @rog per una soluzione di lavoro. –