Rails的3 + angularjs +微小不生产工作:未知提供商:eProvider(Rails

2019-08-02 23:00发布

我已经照着所有我能找到的指示固定缩小,如

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

他们已经有了资产预编译和发展模式的配置生产工作,所以你应该只能够“轨道的”看到它(不)工作。

Answer 1:

找到了! 他们从来没有说过要注射修复适用于服务太...的解决办法是改变这样的:

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

为此:

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


Answer 2:

记住,指令中还使用DI控制器上。 我花了时间... CS例如:

错误:

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

对:

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


Answer 3:

请务必将DI模式适用于需要用你的模块中注入所有函数定义。 它可以很容易错过一个。 如果您使用的是routeProvider,工厂,服务等,这些都需要有应用的DI模式。 我结束了部署多个次之前,我抓住了他们所有:P



文章来源: Rails 3 + angularjs + minification does not work in production: Unknown provider: eProvider