如何在我的应用程序中动态加载JS文件?

时间:2015-01-15 18:14:01

标签: javascript html angularjs

我正在尝试在我的JS中动态加载外部JS文件。

我已经创建了一个服务来实现它

angular.module('myApp').service('testService', function($http) {
        var prefix;
        //codes to determine what prefix is.
        // It could be http://partnerapp.com/test or http://linkapp.com/test/libs/...etc
        var url = prefix + '/js/test.js';
        return $http({
                method: 'GET',
                url: url
        }); //load JS file
});

在我的主控制器中

angular.module('myApp').controller('myController', function($scope, testService){
    //I am not sure how to load those js here. 
})

无论如何我可以加载它们吗?非常感谢!

2 个答案:

答案 0 :(得分:1)

我对angular.js没有多少经验,但除了eval()我只看到一个其他解决方案,它需要jQuery(如果你还没有这样做)。我指的是jQuery.getScript(url, callback)

这意味着你必须做这样的事情:

var url = prefix + '/js/test.js';
$.getScript(url); //load JS file and execute script

回调是可选的,它是在加载和解释脚本后执行的。

这是我用过的东西,我可以保证会有效。另一种解决方案是使用src =创建脚本标记并将其附加到页面底部。我还没有测试过,所以我不能100%肯定它的成功。

答案 1 :(得分:0)

类似的东西:

angular.module('myApp').controller('myController', function($scope, testService){
    testService.then(function(data){
        //you can console.log(data) and after maybe eval it ?
        eval(data);//eval can be harmfull
    }, function(error){

   });
});