2013-07-17 72 views
14

我正在開發一個Web應用程序。我正在使用AngularJS將所有文件動態加載到UI中。
1.我有和index.html所有的文件將被點擊或加載時動態加載。Angular JS:動態加載CSS和JS文件

//index.html 
    <signin button> <signup button> // etc., 
    //on-clicking signin button a SignIn-page will load in the below div 

    <div id="bodyview"></div> 
    // end of index.html 

現在我的登錄頁面看起來有點像下面的結構

/*a div where my accordion menu will load when the 
    *below submit button is clicked*/ 

    <div id="menu"></div> 

    //other sign-in-form stuff will follow on... 

    //submit button at the end 
    <submit button> //only on clicking the submit button the menu will be loaded 

現在我的問題是,雖然我能夠加載手風琴menu.html文件,我不能加載它所依賴的css和js文件。我已經研究了大部分的stackoverflow討論和許多其他......但沒有爲我工作。
任何人都可以請幫助確定一種方式來加載CSS和JS依賴使用Angular JS ...?
任何幫助表示讚賞。在此先感謝

回答

18

只寫一個服務,CSS和JS文件添加到<head>

這裏是用來動態加載CSS files.You可以很容易地修改它加載JS文件示例服務。

https://github.com/Yappli/angular-css-injector

+2

這可以用來注入JS文件嗎? –

+0

這可能不適用於IE7/8。請參閱http://stackoverflow.com/a/4754995/634204 –

+0

我們如何使用它添加js文件?例如控制器。 –

0
app.controller('MyCtrl', function($scope,$compile) { 
$("#my").append($compile("<script src='my.js'>")($scope)); 
}); 
+1

是的!這是錯誤的方式。請參閱http://docs.angularjs.org/guide/directive –

+0

您不應該在控制器中進行DOM操作。這是使用角度 – ehsan88

1

而是通過AngularJS的方式去的,我試圖加載使用JQuery的文件。它爲我工作。 You can check this link for reference

+1

時的缺陷之一,在這裏我想我不會看到「爲什麼不使用jQuery?」的答案。路線... –

+0

OP正在嘗試使用AngularJS加載文件。像JQuery一樣添加庫來加載文件不是一個好的解決方案。這可以通過普通的javascript完成,如[這裏]所述(http://www.w3.org/wiki/Dynamic_style_-_manager_cSS_with_JavaScript) –