2015-07-03 48 views
2

我想创建一种js库。用户应该只包含一个js文件,他可以使用我所有的功能。在angular.module之前加载javascript文件

我正在使用angularjs。

在我angular.module,我有几个“注射器”(纠正我,如果它不是这个名字),定义如下:

var app = angular.module('WDX', ['ui.bootstrap', 'ngRoute', 'ng-currency', 'ngSanitize']); 

为了使它的工作,我需要包括一些JS文件(如“ng-currency.js”)在角度js文件之前。但是,我希望用户刚刚对包括此angularjs文件(或只有一个其它,没有更多)...

我试图创建一个新的JS文件之前我angularjs文件加载的一切,这样的:

$.getScript("https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js", function() { }); 
$.getScript("/Scripts/ng-currency.js", function() { }); 
$.getScript("/Scripts/kendo.all.min.js", function() { }); 
$.getScript("/Scripts/placeholder.js", function() { }); 
$.getScript("/Scripts/angular-sanitize.js", function() { }); 

但我仍然有这样的错误:

angular.js:38 Uncaught Error: [$injector:modulerr] http://errors.angularjs.org/1.3.12/ $injector/modulerr?p0=test&p1=Error%3A%20…0d%20(http%3A%2F%2Flocalhost%3A46223%2FScripts%2Fangular.min.js%3A17%3A381)

如果我在HTML中的所有脚本,在angularjs文件之前,它的工作原理,但我不希望出现这种情况:/

任何方案?

感谢您的答案!

+0

这听起来像RequireJs – deostroll

+0

因此,用户包括一个JavaScript文件下载6个其他库的情况下,当从DOM删除NG-应用程序吗?如果这些是硬性依赖关系,那么将它们全部捆绑到用户随后包含的一个脚本文件中可能会更好。更好的是,使用像npm或bower这样的工具,它可以让你的用户找到这些依赖并将它们自己捆绑在一起。 –

回答

1

您是否试过手动启动并在angular.bootstrap之前运行脚本,如下所示?

angular.element(document).ready(function() { 
     // add your script here 
     angular.bootstrap(document, ['WDX']); 
    }); 


// OR you could add event listener in your app.js as follows: 

function onDocumentReady() { 
    // add your script here 
    angular.bootstrap(document, ["WDX"]);  
} 
document.addEventListener('DOMContentLoaded', onDocumentReady, false); 

var app = angular.module('WDX', ['ui.bootstrap', 'ngRoute', 'ng-currency', 'ngSanitize']); 

注:上工引导

相关问题