2017-04-20 74 views
0

我正在創建一個包含兩部分的SPA。公開的着陸頁,它用於解釋有關項目的內容並顯示登錄表單。該應用程序的其他部分不公開,只有註冊用戶纔可以訪問。在Angular 2組件上包含Javascript文件(jQuery,Bootstrap等等)

該網站的各個部分(主頁&儀表板)具有不同的組件。我面臨的問題是這些組件有不同的Javascript文件,我已經捆綁了(home.js & dashboard.js)。我在互聯網上找到了不同的解決方案,但他們看起來並不合適。

有關環境的一些詳細信息是,應用程序由Angular CLI搭建,因此包含webpack以防止任務變得更加輕鬆。

我想知道是否有合適的方法來符合Angular 2的良好實踐。

任何幫助,將不勝感激。

+0

這可能看起來像一個明顯的問題,但是,是否需要區分哪個JavaScript文件用於哪個組件?難道你不能把所有的js捆綁在一起(如果你想減少初始捆綁包的大小,可以查看延遲加載)嗎? – snorkpete

回答

1

-Inside angular-cli.json中有一個部分叫做apps。裏面有腳本的部分,您可以有導入您的js文件的角度CLI將捆綁的是JS文件到scripts.bundle.js並把它的index.html

"apps": [ 
{ 
    "scripts": ["../node_modules/jquery/dist/jquery.min.js", 
    "../node_modules/hammerjs/hammer.js", 
    "path_to_your_file/dashboard.js", 
    "path_to_your_file/home.js"] 
} 

- 在另一種方式可將它們導入內部指標.html以經典的方式。

我不確定,但我在app.module.ts中導入'hammerjs',但我認爲它的工作原理是因爲它是通過npm安裝的模塊。

import { MaterialModule } from '@angular/material'; 
import 'hammerjs'; 

這樣子。沒有什麼關於hammerjs的更多內容。您可以將您的js文件轉換爲模塊並像hammerjs一樣安裝它們。

+0

非常感謝,我在腳本部分包含了文件。 – Vistiyos

+0

沒問題,開心幫忙^ _ ^ – 0m3rF