在AngularJS上使用$ inject时出现奇怪的异常

时间:2013-04-17 16:09:16

标签: angularjs

我有一个需要访问服务的控制器。如果我只是简单地将服务作为参数添加到我的控制器的构造函数中它可以正常工作,但如果我尝试使用$ inject注释参数,那么以后我不会遇到最小化我得到的javascript的问题以下例外: "无法阅读财产'用户'未定义"

一切仍然有效,但我不明白异常的来源。

服务的代码是:

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注释的代码的最后一行抛出异常。

1 个答案:

答案 0 :(得分:1)

您错过了=

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