2014-11-25 77 views
0

我很努力獲得通過而引起的誤差試圖與deferredbootstrapper做掉一樣改寫角初始化

未捕獲的錯誤

Rewriting Angular.js app to do away with deferredBootstrapper

收到錯誤時:[$注射器:modulerr]失敗實例化模塊ECP,原因是:錯誤:[$ injector:unpr]未知提供者:$ http

錯誤:[ng:areq]參數'Nav'不是函數,未定義

---不知道如何將以前的injectorModules ---或者打入帳戶和用戶變量來隱藏信息的其他模塊被加載

app.config(["$http", "$q", "Account", "Layout", 
     function ($http, $q, Account, Layout) { 

好像錯誤的方式做到這一點之前。對我來說,它看起來類似於如何設置指令。

+0

我應該在應用配置之前使用這個注入器模塊方法https://docs.angularjs.org/api/ng/function/angular.injector? – 2014-11-25 13:22:03

回答

0

我試過這個方法 - 但得到模塊超時錯誤

未捕獲的錯誤:模塊加載超時:棱角分明,配置/組件裝載機,角翻譯,角翻譯裝載機,靜態文件

define([ 
    "jquery", 
    "angular", 
    "config/component-loader" 
], function ($, angular) { 

    // Create a new module 
    var app = angular.module("ECP", []); 

    // register a new service 
    app.value("ng", "ECP.services"); 

    // configure existing services inside initialization blocks. 
    app.config(["$http, $q, Account, Layout", function($http, $q, Account, Layout) { 
     // Configure existing providers 

     var configObj, 
      deferred; 

      configObj = { 
       account: null, 
       layout: null 
      }; 

      deferred = $q.defer(); 

      Account.fetch() 
       .then(function() { 
        configObj.account = Account; 
        return Layout.fetch(); 
       }) 
       .then(function() { 
        configObj.layout = Layout; 
        return deferred.resolve(configObj); 
       }) 
       .finally(function(){ 
        return deferred.promise; 
       }); 
    }]); 

    app.init = function() { 
     angular.bootstrap(document, ["ECP"]); 
    }; 

    return app; 
}); 
+0

未捕獲錯誤:[$ injector:modulerr]由於以下原因,未能實例化模塊ECP: 錯誤:[$ injector:unpr]未知提供者:$ http,$ q,帳戶,佈局 – 2014-11-26 11:46:48

+0

如何讓它接受提供者?我被要求掛鉤到Account對象並將其掛接到rootScope中 - 以便在所有其他模塊啓動之前可用。 – 2014-11-26 14:00:17

+1

請使用您問題上的編輯鏈接添加其他信息。後回答按鈕應該只用於問題的完整答案。 – royhowie 2015-03-02 02:39:06