0

我的'頂級'角文件因此是:模塊定義和兩個過濾器。我使用rails運行angularJS。AngularJS:僅在生產中,依賴注入失敗

(function(){ 
    var app = angular.module('appname', ['Orders', 'TimePicker']); 

    app.filter('money', function() { 
    return function(input) { 
     return input > 0 ? '£' + input : "FREE"; 
    }; 
    }); 

    app.filter('nodecimal', function() { 
    return function(input) { 
     input = parseInt(input) 
     return input % 1 === 0 ? input.toFixed(0) : input.toFixed(2) ; 
    }; 
    }); 
})(); 

它運行在發展,但在生產中,我發現了以下錯誤: 「錯誤:錯誤:unpr 未知提供商出現未知提供商:nodecimalFilterProvider < - nodecimalFilter」。

從我讀過的,這是因爲縮小。

我已經嘗試按照頁面上的說明,例如,將過濾器的功能於一身的直列依賴注入,像這樣:

app.filter('nodecimal', [function() { 
    return function(input) { 
     input = parseInt(input) 
     return input % 1 === 0 ? input.toFixed(0) : input.toFixed(2) ; 
    }; 
    }]); 

但這並沒有工作。我試圖按照錯誤頁面上的說明:

https://docs.angularjs.org/error/ $噴油器/ unpr P0 = nodecimalFilterProvider%20%3 C-%20nodecimalFilter

,並在此堆棧溢出問題:?

"Uncaught Error: [$injector:unpr]" with angular after deployment

我打算嘗試ngmin-rails gem,但是我討厭安裝寶石,因爲它們似乎會導致與修復程序一樣多的問題。

+0

按照你貼了,問題不應該因爲微小的突破初始代碼。你可以請用縮小版本創建一個plunkr。也分享非縮小的js文件。 – harishr 2014-10-29 12:15:39

+0

btw完全同意'但我討厭安裝寶石,因爲它們似乎會導致許多問題,像修復程序一樣。「#: – harishr 2014-10-29 12:16:29

+0

HarishR:哈哈高興我不是唯一的!我已經修復了,我會分享上面的解決方案。 – 2014-10-29 12:20:03

回答

0

使用以下過程:

  • 安裝ngannotate護欄寶石

  • 刪除舊的緩存的資源,讓他們重建

  • 重新預編譯任何預編譯的資產

  • 重新部署

參考