2014-08-28 76 views
4

我在iframe中有web appEmber app。我想从web app导入自定义库到ember app像全局变量。库看起来像带有功能的对象:在ember-cli中导入自定义库

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

使用套接字的库和两个应用程序的库都一样。

我写道:

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

我无法访问变量helpers项目和灰烬,CLI复制文件夹public到他们的工作文件夹。对不起,如果问题是愚蠢的,我不明白ember-cli进口原则。

回答

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建议你应该使用的风格

+0

谢谢,它的工作原理。但是,我如何能够在ember根目录之外导入文件。 Ember只搜索tmp目录下的''/ chat/tmp/tree_merger-tmp_dest_dir-5dhDCkaV.tmp /../../../ public/scripts/js-helpers.js'和build(用'/../。 ./../')会产生错误的路径。 – user1156168 2014-08-29 08:44:12