保持简短:
是否可以在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({})});
}
});
这可能吗?
P.S。:我需要自定义解析器的原因是,我从服务器获取所有模板,而不是在应用程序启动时将它们提供给用户。因此,我正在扩展EAK中默认使用的ember-jj-abrams-resolver
...
答案 0 :(得分:1)
我认为初始值设定项可以帮助您设置自定义解析器,according to the source code,container
早于任何初始化程序设置,解析程序是属性容器。
您在初始化程序中设置Resolver
属性,但设置容器的过程不会使用此属性。我认为正确的方法是重新打开Ember.Application
并在创建Resolver
之前设置Ember.Application
。
Ember.Application.reopenClass({
Resolver: YOUR_CUSTOM_RESOLVER_NAME
});
Ember.Application.create({...});