首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Ember CLI插件中获取包含应用程序的命名空间?

如何在Ember CLI插件中获取包含应用程序的命名空间?
EN

Stack Overflow用户
提问于 2014-09-03 03:17:42
回答 2查看 741关注 0票数 1

我正在创建一个Ember CLI ember-addon,在我的插件文件中,我需要访问应用程序的配置。我没有办法知道包括这个插件的应用程序将被命名为什么,所以我不能像在应用程序本身中那样简单地执行import ENV from 'app-name/config/environment'

如何从插件本身访问使用ember-addon的应用程序的名称空间,以便可以从该应用程序导入内容?

EN

回答 2

Stack Overflow用户

发布于 2014-09-03 03:41:07

您应该不需要为了获取配置而获取名称空间。

您的插件所需的任何设置都应该添加到config/environment.jsENV.APP中。

例如,如果你想要一个MY_APP_KEY设置,你需要类似这样的东西

config/environment.js中添加了ENV.APP.MY_APP_KEY = 'ABCDEF';

然后,您可以使用初始化器从应用程序实例中读取属性,并通过执行以下操作将其注入您的插件中:

代码语言:javascript
复制
export default {
  name: "my initilizer",

  initialize: function(container, app) {

    //get you setting off of the app instance
    var key = app.get('MY_APP_KEY');

    //register it
    app.register('config:myAddonKey', key, { instantiate: false });

    //inject it where you want to access it
    app.inject('route', 'myAddonKey', 'config:myAddonKey'); 
  }
};

您可以查看如何在Ember Django Adapter中完成此操作的示例

票数 2
EN

Stack Overflow用户

发布于 2014-09-03 03:38:06

一种可能性是使用initializer

代码语言:javascript
复制
Ember.Application.initializer({
    name: 'my-component',
    initialize: function(container, app) {
        // you have access to 'app' here...
    }
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25630711

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档