Angular JS:动态加载CSS和JS文件 我正在开发一个Web应用程序。我使用AngularJS将所有文件动态加载到UI中

Angular JS:动态加载CSS和JS文件 我正在开发一个Web应用程序。我使用AngularJS将所有文件动态加载到UI中,angularjs,angularjs-directive,angularjs-scope,angular-ui,Angularjs,Angularjs Directive,Angularjs Scope,Angular Ui,我有一个index.html文件,所有文件都将在单击或加载时动态加载到该文件中 //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 //index.html /

我有一个
index.html
文件,所有文件都将在单击或加载时动态加载到该文件中

//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
//index.html
//等等,。,
//单击登录按钮,将在下面的div中加载登录页面
//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
/*当
*单击下面的提交按钮*/
//其他登录表单的内容将继续。。。
//最后的提交按钮
//只有单击“提交”按钮,才会加载菜单
现在我的问题是,尽管我能够加载accordio menu.html文件,但我无法加载它所依赖的css和js文件。我研究过stackoverflow,但没有一个对我有效


任何人都可以使用AngularJS来帮助确定加载css和js依赖项的方法吗?只需编写一个服务,将css和js文件添加到

下面是一个用于动态加载CSS文件的示例服务。您可以轻松修改它以加载JS文件

app.controller('MyCtrl',函数($scope,$compile){
$(“#我的”).append($compile(“”($scope));
});

我没有采用AngularJS的方式,而是尝试使用JQuery加载文件。这对我有用。

目前我使用角度css:
嗯,这是目前最好、最灵活的解决方案之一。

我用jquery做了这样艰苦的工作

/** resolve will come inside your route .when() function **/
resolve: {
        theme: function ($route, $q) {
            changeCss($route, $q);
        }
    }

/** This will come just outside your route .when() function, make sure the following function shall be in scope of the route provider **/
    var changeCss = function ($route, $q) {
        var defer = $q.defer();
        // Change the CSS as per the param received
        if ($route.current.params.css != undefined) {
            if ($route.current.params.css === ‘dark’) {
                loadCSS(“assets / css / dark.css”);
                defer.resolve();
            }
            if ($route.current.params.css === ‘light’) {
                loadCSS(“assets / css / light.css”);
                defer.resolve();
            } else {
                defer.resolve();
            }
        }
        return defer.promise;
    }
    var loadCSS = function (href) {
        var cssLink = $(“ < link rel = ’stylesheet’ type = ’text / css’ href = ’”+href + “‘ > ”);
        $(“head”).append(cssLink);
    };
/**解析将进入路由。when()函数**/
决心:{
主题:功能($route,$q){
changeCss($route,$q);
}
}
/**当()函数时,请确保以下函数应在路由提供程序的作用域内**/
var changeCss=函数($route,$q){
var defer=$q.defer();
//根据收到的参数更改CSS
如果($route.current.params.css!=未定义){
如果($route.current.params.css==='dark'){
loadCSS(“assets/css/dark.css”);
defer.resolve();
}
如果($route.current.params.css==='light'){
loadCSS(“assets/css/light.css”);
defer.resolve();
}否则{
defer.resolve();
}
}
回报、承诺;
}
var loadCSS=函数(href){
var cssLink=$(“