为了简短起见:
是否可以在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({})});
}
});
这可能吗?
附注:我需要自定义解析器的原因是,我要从服务器获取所有模板,而不是在应用程序启动时将其交付给用户。因此,我扩展了EAK中默认使用的
ember-jj-abrams-resolver
。 最佳答案
我认为初始化器无法帮助您设置自定义解析器,according to the source code,container
的设置早于任何初始化器,解析器是容器的属性。
您可以在初始化程序中设置Resolver
属性,但是在设置容器的过程中将不会使用该属性。我认为正确的方法是在创建Ember.Application
之前重新打开Resolver
并设置Ember.Application
。
Ember.Application.reopenClass({
Resolver: YOUR_CUSTOM_RESOLVER_NAME
});
Ember.Application.create({...});
关于ember.js - Ember应用工具包: Set Resolver outside of Ember. Application.create(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22637966/