我目前正在尝试访问我的ember 引擎,无论我身在何处。我想要每个引擎的名称,因为我想在我的主应用程序中显示每个引擎。
这里的问题是我找不到找到名称的方法,因为只有当我们导航到与引擎相关的页面时才会加载引擎。
这是通常捕获每个引擎的每个名称的服务,称之为引擎管理器:
import Ember from 'ember';
import App from '../app';
/**
* This service will help us manage every engines that are in our application,
*/
export default Ember.Service.extend({
availableEngines: [],
addEngines(engines)
{
this.get('availableEngines').push(engines);
console.log(this.get('availableEngines'));
}
});
然后在每个引擎中,更准确地说,在每个引擎的每个anEngines/addon/engine.js中,我输入:
import Engine from 'ember-engines/engine';
import loadInitializers from 'ember-load-initializers';
import Resolver from './resolver';
import config from './config/environment';
import Ember from 'ember';
const { modulePrefix } = config;
const Eng = Engine.extend({
modulePrefix,
Resolver,
dependencies: {
services: [
'engines-manager'
]
},
enginesManager: Ember.inject.service('engines-manager'),
init() {
this._super(...arguments);
this.get('enginesManager').addEngines('nameOfMyEngines');
}
});
loadInitializers(Eng, modulePrefix);
export default Eng;
如果我们进入引擎相关页面,这种方法是有效的,但我不想去每个页面加载它们,所以这是我的问题:如何始终加载 ember-engines?
PS:设置我lazy-loading
的true
或false
不改变任何东西。