无法注入$ location服务

时间:2014-05-13 20:52:02

标签: angularjs angularjs-service

此代码为我Error: [$injector:unpr] Unknown provider: $scope, $locationProvider <- $scope, $location

var app = angular.module('myApp.controllers', []);

app.controller('Signup', ['$scope, $location', function($scope, $location) {
    $scope.checkEmailValid = function(){
        //TODO make a decision about whether to go somewhere, if true do this:
        $location.path('/view2');
    };
}]);

我是否遗漏了有关如何注入位置服务的信息? 我还没有配置$ locationProvider,但这样做似乎没有帮助。

2 个答案:

答案 0 :(得分:5)

您忘记了$ scope和$ location附近的引号:

var app = angular.module('myApp.controllers', []);

app.controller('Signup', ['$scope', '$location', function($scope, $location) {
    $scope.checkEmailValid = function(){
        //TODO make a decision about whether to go somewhere, if true do this:
        $location.path('/view2');
    };
}]);

这应该是诀窍!

答案 1 :(得分:1)

尝试更简单的形式(没有数组形式 - 可能缺少引用是你的问题):

app.controller('Signup', function($scope, $location) {
    $scope.checkEmailValid = function(){
        //TODO make a decision about whether to go somewhere, if true do this:
        $location.path('/view2');
    };
});

使用ngMin可以在构建时解决缩小问题,这种形式不易出错且更具可读性