2015-06-02 165 views
0

真正結束這一個轉彎瘋狂:AngularAMD + RequireJS:無法實例化模塊ngStorage

我試圖AngularJS和RequireJS結合起來。幾次失敗後,我轉向AngularAMD。我遵循的基本過程,但我不斷收到這個討厭的錯誤:

Failed to instantiate module ngStorage due to: Module 'ngStorage' is not available! You either misspelled the module name or forgot to load it...

ngStorage是一個簡單的第三方角模塊。

這裏是我的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 not initialized. Need to call angularAMD.bootstrap(app) first.

+0

請確保從瀏覽器的控制檯,ngStorage.min.js實際上加載.. – nhaa123

+0

@ nhaa123:好點:它確實沒有加載。但爲什麼不呢? –

+0

你確定有 /js/ngStorage.min.js可用嗎? :) – nhaa123

回答

0

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看起來不錯。

例如如果你使用的路徑的另一個名字,讓我們說,在 路徑:
angularStorage: 'js/ngStorage.min'

你apps.js將是:

define(['angularAMD','angularStorage'], function(angularAMD) { 
    var app = angular.module('tyleApp', ['ngStorage']); 
    return angularAMD.bootstrap(app); 
}); 

所以,你用 'angularStorage' 你在requireJS定義, angular.module()仍將使用ngStorage源代碼中定義的模塊名稱'ngStorage'。

+0

感謝您的回答@twinday。不幸的是,我嘗試了沒有墊片(並且按照您的建議還使用了不同的要求名稱),但我無法使其正常工作。不幸的是我已經繼續並放棄了require.js ...所以我無法嘗試新的解決方案。 (我認爲這個問題是相關的,但我可以設置一個簡單的測試來檢查我沒有嘗試過的提議) –

+0

我得到了ngStorage與requireJS在3分中的工作 – twindai

+0

1. 'ngStorage:'{ngStorage:' bower_components/ngstorage/ngStorage'** }' – twindai