![](/img/trans.png)
[英]RequireJS + Angular Error: [$injector:modulerr] Failed to instantiate module helloWorld
[英]AngularAMD + RequireJS: Failed to instantiate module ngStorage
真正使這一瘋狂:
我試圖結合AngularJS和RequireJS。 在幾次失敗的嘗試之后,我轉向了AngularAMD 。 我遵循了基本過程,但始終收到此討厭的錯誤:
無法實例化模塊ngStorage,原因是:模塊'ngStorage'不可用! 您拼錯了模塊名稱或忘記了加載它...
ngStorage是一個簡單的第三方Angular模塊。
這是我的main.js :
require.config({
paths: {
angular: 'js/angular.min',
angularAMD: 'js/angularAMD.min',
ngload: 'js/ngload.min',
ngStorage: 'js/ngStorage.min'
},
shim: {
angularAMD: ['angular'],
ngload: ['angularAMD'],
ngStorage: ['angular'] // Also tried with ['angularAMD'], and without this line at all
},
deps: ['js/app']
});
和我的app.js :
define(['angularAMD','ngStorage'], function(angularAMD) {
var app = angular.module('tyleApp', ['ngStorage']);
return angularAMD.bootstrap(app); // Fails here...
});
我從應用程序中刪除了所有其他內容,但在這里失敗了...我在做什么錯?
注意:我也嘗試過:
define(['angularAMD','ngload!ngStorage'], function(angularAMD) {
但是然后我得到:
angularAMD未初始化。 首先需要調用angularAMD.bootstrap(app)。
ngStorage已經定義了AMD,因此您無需為此編寫墊片。
require.config({
paths: {
angular: 'js/angular.min',
angularAMD: 'js/angularAMD.min',
ngload: 'js/ngload.min',
ngStorage: 'js/ngStorage.min'
},
shim: {
angularAMD: ['angular'],
ngload: ['angularAMD'],
},
deps: ['js/app']
});
並且在您的app.js中,路徑中的ngStorage名稱相同,如果您將其命名為另一個字符串,則此名稱可以是不同的字符串,在這種情況下,您的app.js看起來不錯。
例如,如果您在path中使用另一個名稱,例如,在path中:
angularStorage: 'js/ngStorage.min'
您的apps.js將是:
define(['angularAMD','angularStorage'], function(angularAMD) {
var app = angular.module('tyleApp', ['ngStorage']);
return angularAMD.bootstrap(app);
});
因此,您可以使用requireJS中定義的“ angularStorage”,而angular.module()仍將使用ngStorage源代碼中定義的模塊名稱“ ngStorage”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.