2017-04-06 102 views
0

試圖圍繞Ember.js包裹我的頭。 似乎我理解複雜的事情,但錯過了小事情。ember.js包含自定義js

如何添加一個example.js文件? 爲簡單起見,假設該example.js文件只包含:

(function(){ 
    console.log("example is alive in console"); 
})(window); 

這應該顯示「的例子是在控制檯活着」瀏覽器控制檯中。

我曾嘗試: 加入餘燼-CLI-build.js內app.import('vendor/javascripts/example.js');和添加<script src="{{rootURL}}vendor/javascripts/example.js"></script>到的index.html

控制檯表示

ⓧ GET http://localhost:4200/vendor/javascripts/example.js
DEBUG:---- ---------------------------
DEBUG:Ember:2.11.3
DEBUG:Ember數據:2.12.1
DEBUG:jQuery的:3.2.1
DEBUG:-------------------------------
ⓧ GET http://localhost:4200/vendor/javascripts/example.js

我發現的所有答案都表明,只需將custom.js添加到供應商文件即可。可悲的是,我錯過了一些東西。

回答

0

這適用於我當我巢資產在/vendor目錄。 ember-cli構建過程將/vendor中的JS文件合併爲一個vendor.js文件,您可以在app/index.html中看到鏈接。所以,把你的example.js文件在/vendor,然後導入添加到ember-cli-build.js

app.import('vendor/example.js`);

現在,當你啓動服務器,從example.js你的代碼應該執行,因爲這將被納入assets/vendor.js

+0

感謝您的驗證。我將文件切換到根目錄,同樣的問題。然後將其放回/javascripts/example.js,並從index.html中移除''並重新啓動ember服務器。看,知道這是愚蠢的。修改ember-cli-build.js時,你必須手動重新啓動ember服務器。 livereload服務器不會接受更改。 – William

0

首先,Ember.js有Convention Over Configuration的方法,和您的URL可以做一個比正常的HTML網站很多東西。

無論你想用你的custom.js文件做什麼,它都不是將它作爲路徑的燼way方式。您需要使用routes才能在應用中進行導航。儘管路線遠不止導航。您可以指定用戶可以在app/router.js文件中使用Router'smap函數瀏覽的應用程序的結構。

但是,如果您想將custome.js文件包含在您的應用程序中,並讓custom.js爲您的應用程序執行一些任務。您可以簡單地繼續並創建一個任何名稱的目錄,javascript例如在app目錄中。把你的JavaScript文件放在裏面。然後,你可以導入這些文件只是作爲參考的餘燼任何其他文件:

import customObject from 'yourApp/javascript/custom.js'; 

在這裏,您custom.js應出口customObject

如果您想了解更多信息,請仔細閱讀guides。如果你真的想了解更多,請致電API docs

注:在寫這個答案目前燼-CLI版本的時間是@ 2.12.0

+0

「閱讀指南和API文檔」對我和所有未來的觀衆來說都含糊不清。我已經多次閱讀過它們,但仍未找到具體提到的自定義js包含,它可以完成一項簡單的任務,如啓動計時器或顯示控制檯消息。您的建議將來自指南/ API內的什麼位置?我似乎跳過了一個重要的章節! – William

0

當修改燼-CLI-build.js您必須手動重新啓動服務器的餘燼。 livereload服務器不會接受更改。