Soru Rails 3 + angularjs + minification üretimde çalışmıyor: Bilinmeyen sağlayıcı: eProvider


Küçültmeyi düzeltmek için bulabildiğim tüm talimatları izledim, ör.

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

ve

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

yine de açısal çalışmaya devam etmeyi reddediyor. Her zaman "Bilinmeyen sağlayıcı: eProvider" hatasını atar

Çalışmak için iki girişimim var ... herkes yardım edebilir mi?

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

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

Varlıklarını önceden derlemişlerdi ve geliştirme modu üretim olarak çalışacak şekilde yapılandırılmıştı, bu yüzden çalışmayı (görmemek) görebilmek için "raylar" yapabilmeniz gerekir.


22
2017-11-19 17:59


Menşei


Birinin hedeflerine bağlı olarak, olası bir çözüm minikleştiriciyi daha az desctructive optimizasyonlara geri ölçeklendirmektir. Bu durumuda uglify kullanabilirsiniz mangle: false yapılandırma ve hala boşluk kaldırma ile birkaç kilobayt kaydedin. - rymo


Cevaplar:


Bulundu! Enjeksiyon düzeltmelerini de hizmetlere uygulayacaklarını söylemediler ... Çözüm bunu değiştirmek:

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

buna:

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

60
2017-11-19 18:19



Bunun için teşekkürler! : D - Răzvan Ciocănel
+1, bunun gibi bir "kaza" geçirdi .run() yapılandırma. - kaiser
yapamam ngmin Bunu senin için yap - escapedcat
@Josiah, bağımlılık enjeksiyonu işlevin js minification hayatta kalmasına izin verdiği için işe yarıyor. - jemminger
Ng-strict-di kullanmanızı öneririm (docs.angularjs.org/api/ng/directive/ngApp) gelişmekte olan env'de sorunu tespit etmek - Marco C.


Unutmayın, direktifler içerisindeki kontrolörlerde DI kullanmak için. Bana saatlerce sürdü ... CS örneği:

yanlış:

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

sağ:

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

14
2017-09-04 16:52



Bana bir sürü sorun yaşadım, bahşiş için teşekkürler. - jlr
Bu, komut dosyası seçim çözümlerinizi kullanarak okuyucuya güvenmediyse daha yararlı olur. - ericpeters0n


DI desenini uyguladığınızdan emin olun. HERŞEY Modülünüzde enjeksiyon gerektiren fonksiyon tanımları. Birini kaçırmak kolay olabilir. Eğer bir routeProvider, fabrika, servis vb. Kullanıyorsanız, bunların hepsinin DI modelinin uygulanması gerekir. Hepsini yakalamadan önce birden çok kez konuştum: P


6
2018-06-13 20:50



RouteProvider için +1 - Bartek Skwira
'Birini kaçırmak kolay olabilir.' Kesinlikle. Deseni, direktiflerde tanımlanan kontrolörlere bile uygulamanız gerekir! Bu hatayı ararken harika bir saat harcadım. - tsikov