是否可以将选项从插件的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应用程序?
请注意,我知道您可以将参数传递给模板中的组件,但这不是这个问题的重点。谢谢。
我认为最好使用来实现config/environment
。
您可以将选项添加到插件config/environment.js
文件中。该对象将与您的应用程序合并config/environment.js
。
module.exports = function(/* environment, appConfig */) {
return {
myaddon {
enabled: true
}
};
};
或者,如果你感到时髦,你可以覆盖的默认行为插件配置钩在index.js
手动添加的选项。但是应该考虑将幸福的道路添加到config/environment.js
在您的组件中,您可以使用以下命令导入配置:
import config from '../config/environment';
如果还需要将选项添加到您的应用程序实例中。您可以在中的APP
属性下添加选项config/environment.js
。APP属性的内容已添加到该应用实例。在您的插件中config/environment.js
:
module.exports = function(/* environment, appConfig */) {
return {
APP: {
// Here you can pass flags/options to your application instance
// when it is created
myaddon {
enabled: true
}
}
};
};
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句