2014-11-12 30 views
5

Uygulamamı sadece imber-cli'ye dönüştürdüm ama Ember.Application.register'u nasıl kullanacağımı bilmiyorum çünkü register Uygulama extend yerine create ile başlatıldığında görünmüyor .ember-cli dosyasında singleton olmadan bağımlılık enjeksiyonu

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; 

Daha önce, App bir küresel olduğu için, bu hakkı aynı sınıfa kaydedebilirim.

Tüm kayıt çağrılarını başlatıcıya taşımak zorunda kalacağım, böylece uygulama örneğine erişebiliyorum?

cevap

1

Bir başlatıcının sizin için bunu yapacağına inanıyorum. Uygulama dizininizde initializers klasörü oluşturmalısınız (kontrolörler, şablonlar, vb. Ile aynı seviyede). Bu dosya oraya gitmeli.

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

Evet, en sonunda bu benim çözümümdü. Söz konusu dosyada konteyner ile kayıt olmak daha güzel olurdu, ancak hala GLOBALS olmadan bunu nasıl yapacağından emin değilim. – typeoneerror

İlgili konular