0
我想限制使用角度路由在公共目录内的一些页面的访问。
.when('/adminprofile', {
templateUrl: '../partials/adminprofile.html',
access: {restricted: true}
})
我想读什么,我相信是我声明的属性称为接入,叫访问
myApp.run(function ($rootScope, $location, $route, AuthService) {
$rootScope.$on('$routeChangeStart',
function (event, next, current) {
AuthService.getUserStatus()
.then(function(){
if (next.access.restricted && !AuthService.isLoggedIn()){
$location.path('/login');
$route.reload();
}
});
});
});
但我得到的是这样的错误:
TypeError: next.access is undefined
我如何阅读财产或如何以更好的方式实现这一目标?,谢谢
编辑:
根据建议,我已经改变了代码,它看起来就如下:
var myApp = angular.module('myApp', ['ngRoute']);
myApp.config(function ($routeProvider, $locationProvider) {
$routeProvider
.when('/', {
templateUrl: '../partials/home.html',
resolve: {
access: false
}
})
.when('/home', {
templateUrl: '../partials/home.html',
resolve: {
access: false
}
})
.when('/login', {
templateUrl: '../partials/login.html',
controller: 'loginController',
resolve: {
access: false
}
})
.when('/logout', {
controller: 'logoutController',
resolve: {
access: false
}
})
.when('/register', {
templateUrl: '../partials/register.html',
controller: 'registerController',
resolve: {
access: false
}
})
.when('/adminprofile', {
templateUrl: '../partials/adminprofile.html',
resolve: {
access: true
}
})
.otherwise({
redirectTo: '/'
});
});
我有我的运行功能:
myApp.run(function ($rootScope, $location, $route, AuthService) {
debugger;
$rootScope.$on('$routeChangeStart',
function (event, next, current) {
AuthService.getUserStatus()
.then(function(){
if (next.resolve.access && !AuthService.isLoggedIn()){
$location.path('/login');
$route.reload();
} else{
$location.path($route.current.originalPath);
}
});
});
});
现在我可以看到价值的访问:
next.resolve.access
但没有显示任何东西,我运行调试,可以看到吨帽子实际上正在经历$ routeChangeStart回调,whyyyyy? helppppp!
尝试并检查“下一步”或控制台记录它以查看其内容...即使在那里访问? – floor
我只是在镀铬调试,当我在它悬停它说不确定 – Juanca
实际上是一个对象:PARAMS {},pathParams {},_proto_:对象 – Juanca