2014-11-12 10 views
5

बस एंबर-CLI करने के लिए अपने एप्लिकेशन परिवर्तित, लेकिन मैं किसी भी Ember.Application.register उपयोग करने के लिए कैसे और अधिक, क्योंकि register उपलब्ध हो प्रतीत नहीं होता है जब आवेदन create बजाय extend के साथ शुरू किया गया है पता नहीं है ।निर्भरता इंजेक्शन एंबर-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; 

पहले, क्योंकि ऐप वैश्विक था, मैं इस अधिकार को उसी कक्षा में पंजीकृत कर सकता था।

क्या मुझे सभी रजिस्टर कॉल को प्रारंभकर्ता को ले जाना होगा ताकि मैं ऐप इंस्टेंस तक पहुंच प्राप्त कर सकूं?

उत्तर

1

मुझे विश्वास है कि एक प्रारंभकर्ता आपके लिए यह करेगा। आपको अपनी ऐप निर्देशिका में initializers फ़ोल्डर बनाना होगा (नियंत्रक, टेम्पलेट्स आदि के समान स्तर)। यह फ़ाइल वहां जाना चाहिए।

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

हाँ, यह अंत में मेरा समाधान था। फ़ाइल में कंटेनर के साथ पंजीकरण करने के लिए यह अच्छा होगा, लेकिन मुझे अभी भी यकीन नहीं है कि ग्लोबल्स के बिना ऐसा कैसे करें। – typeoneerror

संबंधित मुद्दे