是否可以将插件的index.js
文件中的选项传递给插件的Ember应用程序?
Ember CLI插件允许您通过设置Brocfile.js
中的选项将选项传递到插件。
var EmberApp = require('ember-cli/lib/broccoli/ember-app');
var app = new EmberApp({
myAddon: {
enabled: false // TODO - Change when CLoudfront is implemented
},
});
然后,您可以在插件的index.js
文件中访问这些选项,如下所示:
module.exports = {
name: 'my-addon',
included: function(app) {
var options = app.options.myAddon;
}
}
但是,如果我想在Ember组件或视图或插件中的其他类中使用这些选项,该怎么办?例如,一个组件:
import Em from 'ember';
export default Em.Component.extend({
doSomething: function() {
if (this.get('options.enabled')) {
// Then do something
}
},
});
是否可以将插件的index.js
文件中的选项传递给插件的Ember应用程序?
请注意,我知道你可以将参数传递给模板中的组件,但这不是这个问题的重点。感谢。
答案 0 :(得分:3)
我认为您要完成的工作最好使用config/environment
实现。
您可以将自己的选项添加到地址config/environment.js
file。此对象将与您的应用程序config/environment.js
合并。
module.exports = function(/* environment, appConfig */) {
return {
myaddon {
enabled: true
}
};
};
或者,如果您感觉时髦,可以覆盖index.js
中addons config hook的默认行为以手动添加选项。但应考虑将快乐路径添加到config/environment.js
然后,您可以在组件中导入配置:
import config from '../config/environment';
如果您还需要将选项添加到您的应用实例中。您可以在APP
的{{1}}属性下添加选项。 APP属性的内容将添加到应用程序实例中。在您的插件中config/environment.js
放置:
config/environment.js