gpt4 book ai didi

javascript - Angularjs 路由解析

转载 作者:行者123 更新时间:2023-12-03 02:50:18 25 4
gpt4 key购买 nike

我的应用程序中有大量的 angularjs 路线。我想根据某些用户权限级别设置对这些路由的访问权限。

angular.module('myApp').run(['$rootScope', 'someAuthFactory', function($rootScope, someAuthFactory) {
$rootScope.$on('$stateChangeStart', function (event, toState) {
$rootScope.permissions = someAuthFactory.getPermssionLevels();
$rootScope.specialRights = $rootScope.permissions.indexOf('superRole') > -1;
...

这是我的路线之一:

.state("dashboard.overview", {
url: "/dashboard",
templateUrl: "app/dashboard.html",
resolve: {
roles: ['rootScope', function (rootScope) {
return $rootScope.specialRights;}]
},

所以这段代码可以工作,但如果我想添加这个:

resolve: {
roles: ['rootScope', function (rootScope) {
return $rootScope.specialRights;}]
}

对于每条路线,它都会是重复的代码,或者如果我想查找其他 Angular 色,那会很无聊。我们能否让resolve部分变得更小、更简洁?

最佳答案

在路由之上的配置函数中创建一个变量,如下所示

var resolveRoles = ['rootScope', function (rootScope) {
return $rootScope.specialRights;}]
}

并在每个这样的 route 使用它,

   .state("dashboard.overview", {
url: "/dashboard",
templateUrl: "app/dashboard.html",
resolve: {
roles: resolveRoles
},
});

关于javascript - Angularjs 路由解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47897791/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com