4

なぜ同じモジュール内のファクトリにアクセスできないのだろうか。

異なる独立したモジュールで Web アプリを構築する方が良いと思うので、すべてのメソッド (サービス、ファクトリ、ディレクティブなど) を同じモジュール内にグループ化したいと考えています。

私は何を間違っていますか?

app = angular.module("MyGreatModuleProvider", []);

app.factory("MyFactory", function($rootScope, $scope) {
  return {
    myFunction: function() {
      console.log("Hello World");
    }
  }
});

app.controller("myCtrl", function($scope, MyFactory) {
  MyFactory.myFunction();
  // This doesnt't work, unknown provider
});
4

3 に答える 3

3

工場には$scope

を削除し$scopeて のみを保持すると、$rootScope問題なく動作します

于 2013-10-16T09:22:41.400 に答える
1

ファクトリ宣言から と の両方$scopeを削除できます。これがプランカーです。$rootScope

于 2013-10-16T09:28:22.050 に答える
0

注入されたオブジェクト名を定義して、フィールドに何を注入するかを Angular に知らせます。

app.controller("myCtrl", ['$scope', 'MyFactory', function($scope, MyFactory) {
  MyFactory.myFunction();
}]);

特にアプリケーションをコンパイルする場合は、これをお勧めします。

さらに、他の人が指摘したように、工場には $rootScope と $scope がありません。

于 2013-10-16T09:21:52.127 に答える