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
    }
});

Antworten auf die Frage(3)

Ihre Antwort auf die Frage