2014-11-12 4 views
5

appena convertito la mia app Ember-cli, ma non so come usare Ember.Application.register più perché register non sembra essere disponibile quando l'applicazione viene avviata con extend piuttosto che create .iniezione di dipendenza senza Singleton nella brace-cli

import Ember from 'ember'; 
import App from 'myapp/app'; 

var AdminMyController = Ember.ObjectController.extend({ 
}); 

// THROWS ERROR HERE BECAUSE register isn't, uh...registered? 
App.register('controller:adminMyController', AdminMyController, { singleton: false }); 

export default AdminMyController; 

In precedenza, poiché l'App era globale, potrei registrare questo diritto nella stessa classe.

Devo spostare tutte le chiamate di registro su un inizializzatore in modo da poter accedere all'istanza dell'app?

risposta

1

Credo che un inizializzatore lo farebbe per te. Dovrai creare una cartella initializers nella directory dell'app (stesso livello di controller, modelli, ecc.). Questo file dovrebbe andare lì.

import Ember from 'ember'; 

var AdminMyController = Ember.ObjectController.extend({ 
    ... 
}); 

export default { 
    name: 'adminMyController', 
    initialize: function (container, application) { 
     container.register('controller:adminMyController', AdminMyController, {singleton: false}); 
    } 
}; 
+0

Sì, questa era la mia soluzione alla fine. Sarebbe più carino registrarsi con il contenitore nel file in questione, ma non sono ancora sicuro di come farlo senza GLOBALS. – typeoneerror