Ember App Kit: Установите Resolver вне Ember.Application.create()

Чтобы это было коротко:

Можно ли настроить Resolver приложения за пределами Ember.Application.create() блок?

В идеале я хотел бы установить Resolver в Ember.Application.initializer#initialize() функция. Что-то вроде:

import CustomResolver from 'appkit/utils/resolver/custom';
import CustomAjax from 'appkit/utils/ajax/custom';

Ember.Application.initializer({
  name: 'resolver_setup',

  initialize: function (container, application) {
     // NOTE: For an unknown reason (unknown to me!) I can't import CustomAjax in CustomResolver...
     application.set('Resolver', CustomResolver.create({ajax: CustomAjax.create({})});
  }
});

Это возможно?

PS: причина, по которой мне нужен собственный распознаватель, заключается в том, что я загружаю все шаблоны с сервера, а не доставляю их пользователю при запуске приложения. Поэтому я расширяю ember-jj-abrams-resolver который используется по умолчанию в EAK...

1 ответ

Решение

Я не думаю, что инициализаторы могут помочь вам установить собственный Resolver, в соответствии с исходным кодом, container устанавливается раньше любых инициализаторов, resolver является свойством контейнера.

Вы устанавливаете Resolver свойство в инициализаторе, но оно не будет использоваться в процессе настройки контейнера. Я думаю, что правильный путь - это открыть Ember.Application и установить Resolver прежде чем создавать Ember.Application,

Ember.Application.reopenClass({
  Resolver: YOUR_CUSTOM_RESOLVER_NAME
});

Ember.Application.create({...});
Другие вопросы по тегам