簡體   English   中英

Angular JS:$位置注入未定義

[英]Angular JS: $location injection undefined

我正在嘗試以這種方式配置路由,以便在用戶未登錄的情況下重定向到登錄頁面。 這是我的代碼:

angular.module('witBiz.services', []);
angular.module('witBiz.controllers', ['witBiz.services']);
var witBizModule = angular.module('witBiz', ['ngRoute' , 'witBiz.controllers', 'witBiz.services'   ]);

witBizModule.config(['$routeProvider', function($routeProvider) {
    $routeProvider.when('/login', {templateUrl: 'resources/views/login.html', controller: 'LoginController'});
    $routeProvider.when('/index', {templateUrl: 'resources/views/index.html', controller: 'IndexController'});
    $routeProvider.otherwise({redirectTo: 'resources/views/index.html'});
}])
    .run(['$rootScope',  'checkLogin', function($rootScope, checkLogin ,$routeProvider ) {
        $rootScope.$on('$routeChangeSuccess', function () {
           if (checkLogin())
                $location.url("/index");
        })
    }])
    .factory('checkLogin', function(){
        return function() {
            //perform real logic here
            return true;
        }
    })

基本上,我在哪里聲明模塊和服務。 現在的問題是$ location沒有定義,所以我得到了錯誤。 我試圖像這樣將$ location注入為依賴項,但是我得到了未定義的注入(injpt):

.run(['$rootScope',  'checkLogin', '$location', function($rootScope, checkLogin ,$location) {
        $rootScope.$on('$routeChangeSuccess', function () {
           if (checkLogin())
                $location.url("/ciao");
        })
    }])

因此,我想知道如何在“運行”方法中使用內置的$ location服務...為什么要將它作為依賴項注入為$ rootScope或checkLogin?

我正在使用角度1.2.0 rc2。

謝謝

這是一個工作示例http://plnkr.co/edit/gf5LhTjqhz4MoZfVcqIt?p=preview

$ location無法在.run中運行,無法重現錯誤

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM