我需要有两个可选参数通过url使用查询字符串传递,我能够使用ui路由器( plunker )达到这一点,但没有在我的基于angular-permission的应用程序中处理授权。
我的stateChangeStart、stateChangeError和stateChangeSuccess几乎是空的(我只有日志),因为权限是直接从angular-permission库中处理的。
我需要这个参数的状态定义是:
$stateProvider
.state('schedule', {
url: "/schedule?param1¶m2",
views: {
'header': {
templateUrl: "common/partials/header.tpl.html",
controller: "HeaderCtrl"
},'content': {
templateUrl: "schedule/partials/schedule.tpl.html",
controller:"ScheduleRecapCtrl"
}
},
resolve:{
Filters:'Filters',
availableFilters:function(Filters){
return Filters.get().$promise;
}
}, data: {
permissions: {
only: ['logged'],
redirectTo: 'login'
}
}
})这是我的群组定义
app.run(function (PermissionStore, authenticationSvc) {
// Define anonymous permission
PermissionStore.definePermission('anonymous', function(stateParams){
return !authenticationSvc.isLogged();
});
PermissionStore.definePermission('logged', function (stateParams) {
return authenticationSvc.isLogged();
});我注意到,在达到带有参数的状态之后,会触发一个新的$stateChangeStart (在$stateChangeSuccess之前),但没有来自url的参数。我不知道状态定义中是否有错误,或者角度权限是否做了一些不正确的事情。
这是我的bower.json文件的依赖项部分
"dependencies": {
"angular": "~1.4.0",
"angular-bootstrap": "~1.1.2",
"angular-loader": "~1.4.0",
"angular-mocks": "~1.4.0",
"angular-route": "~1.4.0",
"angular-ui-router": "~0.2.17",
"html5-boilerplate": "~5.2.0",
"angular-animate": "^1.4.9",
"angular-permission": "^2.0.1",
"bootstrap": "^3.3.6",
"startbootstrap-sb-admin-2": "^1.0.8",
"angular-filter": "^0.5.8",
"angular-block-ui": "^0.2.2",
"angular-resource": "^1.5.0",
"angular-local-storage": "^0.2.3",
"angular-toastr": "^1.7.0",
"angular-translate": "^2.9.1",
"angular-sanitize": "^1.5.0",
"angular-translate-storage-local": "^2.9.1",
"angular-cookies": "^1.5.0",
"angular-translate-loader-static-files": "^2.9.1"
}发布于 2016-03-24 02:22:49
角度权限的当前实现(2.2.3)允许您在转换(已授权)和重定向状态(未授权)中传递参数。请更新库,现在一切都应该正常了。
https://stackoverflow.com/questions/35487796
复制相似问题