サービスにアクセスする必要があるコントローラーがあります。コントローラーのコンストラクター関数にパラメーターとしてサービスを追加するだけで問題なく動作しますが、後で 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 アノテーションが呼び出される上記のコードの最後の行でスローされます。