22

縮小を修正するために見つけることができるすべての指示に従いました。

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

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

それでもAngularはまだ機能しません。常に「不明なプロバイダー: eProvider」というエラーがスローされます。

これを機能させるための私の2つの試みは次のとおりです...誰か助けてくれますか?

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

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

彼らはすでにアセットをプリコンパイルしており、開発モードは本番環境として機能するように構成されているため、「rails s」を実行して動作する (動作しない) ことを確認できるはずです。

4

3 に答える 3

60

それを見つけた!インジェクションの修正をサービスにも適用するように言われたことはありません...解決策は、これを変更することです。

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}
      });
    }]);
于 2012-11-19T18:19:12.560 に答える
14

ディレクティブ内のコントローラーでも DI を使用することを忘れないでください。何時間もかかりました... CS の例:

違う:

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

右:

controller: ["$scope"
  ($scope) ->
    $scope.closeModal = ->
      ModalService.close()
]
于 2013-09-04T16:52:29.283 に答える