Chcę użyć this.get('controllers.pack.query');
, aby uzyskać App.PackQueryController
w App.PackController
, ale nie udało się.Ember.js Jak uzyskać kontroler w potrzebach zagnieżdżonych controllerName
Myślę, że problem jest Ember używać pack
nie pack.query
jak controllerName
gdy próbuje dostać sterownik. Chociaż mogę kontroler przez this.controllerFor('pack.query')
, ale Ember mówi, że jest przestarzała, użyj needs
zamiast
Mój router mapa lubi poniżej i mam zdefiniowane needs: ['pack.query']
w 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
}
});
robi to nie działa po ember-cli 0.2.3. Zobacz odpowiedź @roga dla działającego rozwiązania. –