2017-02-17 47 views
2

如何在路由器初始化期间根据服务中的状态动态更新路由器?假设我有4个引擎,其中一个必须根据服务中的状态安装在应用程序中,无论状态如何,安装的引擎都必须具有特定的名称,而不管引擎是否可以安装。在路由器中动态安装引擎

回答

2

这是不支持在这个时候,在余烬,发动机回购协议这一问题可能会下降:https://github.com/ember-engines/ember-engines/issues/99


暂时的解决办法理应存在的余烬,发动机的V0.5的(需要余烬2.12和余烬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