2015-07-03 79 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']); 

注:上工引導

相關問題