2014-11-14 74 views
0

我一直在使用angular-seed作爲初學者項目,雖然它在過去一個月內已經改變了它的應用程序結構,但我決定看看angular-sproutAngular-Sprout:module.controller()函數未定義;無法添加控制器

Angular-sprout沒有更新的索引異步頁面,所以我決定分叉代碼並在其上工作。我就擁有了一切正確接線,但現在當我嘗試添加一個控制器(通過module.controller()功能,我收到一個錯誤,指出module.controller不確定。

當我將index-async.html頁面登錄angular.module('myModule')到控制檯,我得到了正確的方法的角度對象 - filter()service()provider(),等等 - 但controller是不是有:

module Object { 
    _invokeQueue: Array[0], 
    _runBlocks: Array[0], 
    requires: Array[0], 
    name: "application.controllers", 
    provider: function…} 
    _invokeQueue: Array[0] 
    _runBlocks: Array[0] 
    config: function(){c[d||"push"]([a,b,arguments]);return g} 
    constant: function(){c[d||"push"]([a,b,arguments]);return g} 
    directive: function(){c[d||"push"]([a,b,arguments]);return g} 
    factory: function(){c[d||"push"]([a,b,arguments]);return g} 
    filter: function(){c[d||"push"]([a,b,arguments]);return g} 
    name: "application.controllers"provider: function(){c[d||"push"]([a,b,arguments]);return g} 
    requires: Array[0]run: function (a){d.push(a);return this} 
    service: function(){c[d||"push"]([a,b,arguments]);return g} 
    value: function(){c[d||"push"]([a,b,arguments]);return g} 
    __proto__: Object 
} 

(很抱歉的可怕格式化我會盡力得到更好的控制檯副本。 )

當我登錄controller從指數異步:

controller undefined details-controller.js:13 

這發生在我運行指標,異步頁。然而,常規的索引頁面上,controller正確定義並給了我一個角方法:

controller function() { 
    invokeQueue[insertMethod || 'push']([provider, method, arguments]); 
    return moduleInstance; 
} details-controller.js:13 

有沒有人遇到此之前?對於它的價值,似乎controller是我錯過的唯一模塊方法,我完全不知道爲什麼會這樣。

回答

0

事實證明....我決定檢查我正在使用的Angular-loader的版本。顯然,角度加載器v1.0.0rc1似乎會導致此錯誤,即使我使用的是AngularJS的版本。我更新了加載程序到更高版本,這似乎解決了這個問題,出於某種原因。

要注意,代碼本身沒有問題。事實證明,根據documentation,加載器優先於angular.module(),這似乎是我遇到的問題的根源。

爲此,我必須克隆角種子並運行npm run update-index-async以獲取最新版本的加載程序代碼。將其複製到萌芽項目似乎解決了Angular 1.0的問題。 (現在,要使用最新版本的Angular進行操作)。如果您使用加載器的腳本標記(而不是直接將其注入到HTML頁面中),那麼您可能只需抓住最新版本並鏈接到你的文件。