0

サービスにアクセスする必要があるコントローラーがあります。コントローラーのコンストラクター関数にパラメーターとしてサービスを追加するだけで問題なく動作しますが、後で JavaScript を最小化する際に問題が発生しないように、パラメーターに $inject で注釈を付けようとすると、次のようになります。例外: 「未定義のプロパティ 'User' を読み取ることができません」

すべて正常に動作しますが、例外がどこから来ているのかわかりません。

サービスのコードは次のとおりです。

var myAppServices = angular.module('myApp.services', []);
myAppServices.factory('User', function(){
        var user = {
            name:"anonymous",
            id: -1,
            authorized:false
        };
        return user;
    });

コントローラーは次のようになります。

function MainController($rootScope, $location, User){
    $rootScope.$on("$routeChangeStart", function (event, current, previous){
        console.log(User);
        if(User.authorized === false &&  current.templateUrl !== 'partials/partial1.html'){
            console.log("returning false")
            $location.path('/view1');
            return false;
        }
    });

}
MainController.$inject['$rootScope', '$location', 'User'];

例外は、$inject アノテーションが呼び出される上記のコードの最後の行でスローされます。

4

1 に答える 1