2012-11-19 38 views
22

मैंने सभी निर्देशों का पालन किया है जो मैं minification को ठीक करने के लिए पा सकता हूं, उदा।रेल 3 + angularjs + minification उत्पादन में काम नहीं करता है: अज्ञात प्रदाता: eProvider

var MyController = function(renamed$scope, renamedGreeter) { 
... 
} 
MyController.$inject = ['$scope', 'greeter']; 

और

someModule.factory('greeter', ['$window', function(renamed$window) { 
...; 
}]); 

अभी तक कोणीय अभी भी काम करने के लिए मना कर दिया। यह हमेशा त्रुटि "अज्ञात प्रदाता: eProvider"

यहां काम करने के लिए मेरे दो प्रयास हैं ... क्या कोई मदद कर सकता है?

https://github.com/jemminger/angular-test1

https://github.com/jemminger/angular-test2

वे पहले से ही, संपत्ति precompiled और विकास मोड उत्पादन के रूप में काम करने के लिए कॉन्फ़िगर किया गया है लिया है, ताकि आप केवल "रेल s" यह देखने के लिए सक्षम होना चाहिए (नहीं) काम ।

+0

किसी के लक्ष्यों के आधार पर एक संभव समाधान minifier करने के लिए कम-desctructive अनुकूलन वापस पैमाने पर करने के लिए है। 'Uglify' के मामले में आप' मैंगल: झूठी 'कॉन्फ़िगरेशन का उपयोग कर सकते हैं और अभी भी व्हाइटस्पेस हटाने के साथ कुछ किलोबाइट्स बचा सकते हैं। – rymo

उत्तर

60

इसे मिला!

angular.module('itemServices', ['ngResource']). 
    factory('Item', ['$resource', function($resource){ 
     return $resource('items/:item_id.json', {}, { 
     query: {method:'GET', params:{ item_id: 'all' }, isArray:true} 
     }); 
    }]); 
+1

इसके लिए धन्यवाद! : डी –

+0

+1 में इस तरह की "दुर्घटना" थी, बस '.run()' config में। – kaiser

+0

नहीं [ngmin] (https://egghead.io/lessons/angularjs-ngmin) यह आपके लिए कर सकता है? – escapedcat

6

सभी कार्य करने के लिए डि पैटर्न लागू करने के लिए सुनिश्चित करें:

angular.module('itemServices', ['ngResource']). 
    factory('Item', function($resource){ 
     return $resource('items/:item_id.json', {}, { 
     query: {method:'GET', params:{ item_id: 'all' }, isArray:true} 
     }); 
    }); 
इस के लिए

: वे सेवाएं भी करने के लिए इंजेक्शन फिक्स लागू करने के लिए कहा कभी नहीं ... समाधान इस बदलने के लिए है परिभाषाएं जो आपके मॉड्यूल के भीतर इंजेक्शन की आवश्यकता होती है। एक को याद करना आसान हो सकता है। यदि आप मार्ग प्रदाता, कारखाने, सेवाओं आदि का उपयोग कर रहे हैं, तो उन्हें सभी को डीआई पैटर्न लागू करने की आवश्यकता है। मैंने उन सभी को पकड़ने से पहले कई बार तैनाती समाप्त की: पी

+1

+1 routeProvider –

+0

के लिए 'यह आसान एक को याद किया जा सकता है । ' ठीक ठीक। निर्देशों में परिभाषित नियंत्रकों को भी आपको पैटर्न लागू करना होगा! मैंने इस बग की तलाश में एक अद्भुत घंटा बर्बाद कर दिया। – tsikov

14

याद रखें, निर्देशों के भीतर नियंत्रकों पर DI का उपयोग करने के लिए भी याद रखें। मुझे घंटे लगे ... सीएस उदाहरण:

गलत:

controller: ($scope) -> 
    $scope.closeModal = -> 
    ModalService.close() 

सही:

controller: ["$scope" 
    ($scope) -> 
    $scope.closeModal = -> 
     ModalService.close() 
] 
+0

मुझे टिप के लिए धन्यवाद, बहुत सारी परेशानी बचाई। – jlr

+12

यह अधिक उपयोगी होगा अगर यह स्क्रिप्टिंग समाधानों की अपनी पसंद का उपयोग कर पाठक पर भरोसा नहीं करता है। – ericpeters0n