如何在路由器初始化过程中根据服务中的状态动态更新路由器?假设我有4个引擎,其中一个必须根据服务中的状态挂载到应用程序中,无论状态如何,挂载的引擎必须具有特定的名称,而不管挂载的是什么引擎。
发布于 2017-02-17 22:39:29
目前还不支持这一点,很可能会在ember-engines存储库中出现这个问题:https://github.com/ember-engines/ember-engines/issues/99
一个临时的解决方法应该存在于ember-engines的0.5版中(需要ember 2.12和ember-cli 2.12)。您必须通过ember g helper load-engine创建一个帮助器,如load-engine。
它的内容将是:
export default Ember.Helper.extend({
assetLoader: Ember.inject.service(),
compute([name]) {
if (this.engineName === name && this._resolved) { return name; }
this.engineName = name;
let assetLoader = this.get('assetLoader');
assetLoader.loadBundle(name)
.then(() => {
this._resolved = true;
this.recompute();
});
return null;
}
});然后,您可以这样使用它:
{{mount (load-engine boundEngineName)}}注:最初是由https://github.com/mike183在Ember slack频道发布的
https://stackoverflow.com/questions/42298038
复制相似问题