在ember-cli中导入自定义库

4

我有一个在iframe中的web应用程序Ember应用程序。我想像全局变量一样从web应用程序导入自定义库到Ember应用程序中。该库看起来像是一个带有函数的对象:

var helpers = {
    helper1: function() {},
    helper2: function() {}
};

这个库与套接字一起工作,对于两个应用程序来说是相同的。

作者写道:

app.import("./../../../public/scripts/js-helpers.js"); //file located in web app 

我无法在项目中访问变量helpers,并且ember-cli将文件夹public复制到它们的工作文件夹中。对不起,如果问题很愚蠢,我无法理解ember-cli的导入原理。

1个回答

7
我将提供一种我认为最简单的解决方案。您不会有全局作用域变量,但可以使用ES6模块方法。
例如,假设您在app_name/lib/下有一个名为helper.js的文件。 lib是一个您创建用于保存自定义库的目录。您不必使用该名称。请使用以下命令export default
export default {
    helper1: function() {},
    helper2: function() {}
};

接下来,假设你需要在一个路由中使用这个功能。这里提供一种可能的路由示例:

import helper from 'app_name/lib/helper';

export default Ember.Route.extend({
   model: function(){
      helper.helper1();
}

helper 是您导入的名称,代表您在 helper.js 中导出的对象。Ember-CLI 建议您使用这种方法。


谢谢,它有效。但是我如何导入Ember根目录之外的文件?Ember仅搜索tmp目录ember/chat/tmp/tree_merger-tmp_dest_dir-5dhDCkaV.tmp/../../../public/scripts/js-helpers.js,并在构建后(使用'/../../../')生成错误路径。 - user1156168

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接