Внедрение зависимостей в модель Ember
Я пытаюсь внедрить зависимости в мои модели Ember.
https://github.com/emberjs/ember.js/issues/3670 утверждает, что это отключено. По ссылке на https://github.com/stefanpenner/ember-cli/blob/master/blueprint/app/app.js#L4 демонстрируется, как включить MODEL_FACTORY_INJECTIONS
что в теории должно позволить мне вводить зависимости в мои модели, однако мне не повезло.
В отсутствие этого решения, есть ли другие способы вставить ссылку в глобальный одноэлементный объект всего приложения в Ember.Model, кроме простого выгрузки его в пространство имен приложения (т. Е. App.ImAGlobalconfig`)?
для справки, это инициализатор, над которым я работаю
App.initializer({
name: 'preload',
initialize: function(container/*, application*/) {
App.deferReadiness();
Ember.$.ajax({
url: CONFIG.configURL,
dataType: 'json',
context: this
}).done(
function(json/*,status, request*/) {
var appConfig;
// ...
container.register('app:config', appConfig, {instantiate: false});
container.injection('controller', 'appConfig', 'app:config');
container.injection('route', 'appConfig', 'app:config');
container.injection('view', 'appConfig', 'app:config');
container.injection('model', 'appConfig', 'app:config'); // I don't work!
App.advanceReadiness();
}
).fail(
function(status, request, error) {
console.log('Unable to load config with: ' + error);
}
);
}
});
Спасибо за любую помощь / мнения.
1 ответ
Решение
Инъекции моделей действительно работают:
Ember.MODEL_FACTORY_INJECTIONS = true;
App = Ember.Application.create();
App.initializer({
name: 'model-injection',
initialize: function(container, application) {
var cfg = {version: '1'};
container.register('app:config', cfg, {instantiate: false});
container.injection('model', 'cfg', 'app:config');
App.advanceReadiness();
}
});
App.deferReadiness();