4

これが私のコントローラーです:

angular.module('domiciliations').controller('mandatsCtrl', ['$scope', 'Domiciliation', 'logger', function ($scope, Domiciliation, logger) {
    $scope.mandats = Domiciliation.query();

    $scope.fullName = function () {
        return this.Person ? 'test' : 'test2'
    }

    $scope.isNextDisabled = function () {
        return false;
    }

    $scope.isPrevDisabled = function () {
        return true;
    }

    $scope.next = function () {
        logger.info("test");
    }
}]);

縮小すると、エラーが発生します。

Error: Unknown provider: nProvider <- n

ここで、コントローラーの後に次の行を含めると、機能します。

mandatsCtrl.$inject = ['$scope', 'Domiciliation', 'logger'];

コントローラー関数で配列型宣言を行うことの要点は、$inject を使用する必要がないようにすることだと思いました....何か見逃しましたか?

4

1 に答える 1

7

コントローラーの JavaScript コードを縮小すると、その関数の引数もすべて縮小され、依存性インジェクターはサービスを正しく識別できなくなります。角度で縮小を処理するには2つの方法があります

1)Just assign an array with service identifier strings into the $inject property of the controller function
 mandatsCtrl.$inject = ['$scope', 'Domiciliation', 'logger'];

2) Using bracketnotation
var mandatsCtrl= ['$scope', 'Domiciliation','logger' function($scope, $Domiciliation,logger) { /* constructor body */ }];

http://docs.angularjs.org/tutorial/step_05

于 2013-04-16T16:57:29.553 に答える