繁体   English   中英

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

[英]How can I get the namespace of the including application in an Ember CLI Addon?

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

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

您无需获取名称空间即可获取配置。
您的插件所需的任何设置都应添加到config/environment.js ENV.APP上。

例如,如果您想要MY_APP_KEY设置,则需要类似
ENV.APP.MY_APP_KEY = 'ABCDEF'; 已添加到config/environment.js

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

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中看到有关其完成方式的示例

一种可能是使用initializer

Ember.Application.initializer({
    name: 'my-component',
    initialize: function(container, app) {
        // you have access to 'app' here...
    }
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM