2016-08-22 64 views
0

以下是我的示例路由配置。Angularjs:當調用某種類型的路由時調用函數

.config(['$routeProvider', function($routeProvider) { 
    $routeProvider.when('/admin', { 
     templateUrl: 'admin/admin.html', 
     controller: 'AdminCtrl' 
    }).when('/admin/confrence',{ 
     templateUrl: 'admin/adminconfrence.html', 
     controller: 'AdminCtrl' 
    }).when('/admin/confrence/new',{ 
     templateUrl: 'admin/adminconfrencenew.html', 
     controller: 'AdminCtrl' 
    }); 
}]) 

我想做一些身份驗證檢查,當任何路線被稱爲開始/admin。是否有人可以指導我怎麼可能

+1

我認爲你應該使用[了'resolve'財產(https://docs.angularjs.org/api/ngRoute/provider/ $ routeProvider)作爲您的身份驗證檢查的路由。 –

回答

3

試試這個:

app.run(function($rootScope) {  
    $rootScope.$on('$routeChangeStart', function(event, next, current) { 
     if (next.$$route.originalPath.indexOf("/admin")!= -1){ 
      // do your stuff 
     } 
    }); 
}) 
+0

您可以使用'event.preventDefault()'來停止加載路線。 – plong0

+0

我認爲我們必須將「new.indexOf」更改爲「next。$$ route.originalPath」。 如果可能請更新您的答案,以便我可以將其標記爲正確的答案。 –

+1

@ Ahmad.Masood感謝您指出。更新。你的意思是? –