2014-08-28 81 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