Ember.js Cómo obtener el controlador en necesidades que se anida controllerName

Quiero usarthis.get('controllers.pack.query'); LlegarApp.PackQueryController enApp.PackController, pero falló.

Creo que el problema es el uso de Ember.pack nopack.query comocontrollerName cuando intenta obtener el controlador. Aunque puedo conseguir el controlador porthis.controllerFor('pack.query'), pero Ember dice que está en desuso, por favor useneeds en lugar

El mapa de mi enrutador le gusta a continuación y lo he definidoneeds: ['pack.query'] enApp.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
    }
});

Respuestas a la pregunta(3)

Su respuesta a la pregunta