javascript - 是否可以定义一个解析对象并使其在所有路由中可用?

标签 javascript angularjs angularjs-routing

我有一个用户可以访问应用程序的不同部分。我现在正在做的是为每个 $routeProvider.when 添加一个 resolve

resolve : {
            adminUser: securityAuthorizationProvider.requireAuthenticatedUser,
            hasSiteAccess: securityAuthorizationProvider.requireSiteAccess,
            hasEmailAccess: securityAuthorizationProvider.requireEmailAccess
        }

我在每个 Controller 中添加“hasSiteAccess”和“hasEmailAccess”,如下所示:

.controller('setup', ['$scope','hasSiteAccess','hasEmailAccess', function ($scope,  hasSiteAccess, hasEmailAccess) {

我的应用程序分为许多模块,我想让这些模块全部可用以显示友好的消息。

是否可以让这个解析对象在所有路由和 Controller 中可用?

谢谢!

最佳答案

只需在每次通过 $routeChangeStart 事件更改路由之前应用授权提供程序:

.run(['$rootScope', 'securityAuthorization',
    function($rootScope, securityAuthorization) {

        $rootScope.$on('$routeChangeStart', function(next, current) {
            securityAuthorization.requireAuthenticatedUser();
            securityAuthorization.requireSiteAccess();
            securityAuthorization.requireEmailAccess();
        });
    }
])

希望对你有帮助

关于javascript - 是否可以定义一个解析对象并使其在所有路由中可用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17443699/

相关文章:

javascript - Angular 将参数作为数组传递(例如?category[]=1&category[]=2&category[]=3)

javascript - 在页面导航时发送登录凭据

javascript - Angular 导航 : Show different sub navigation for different views

javascript - 使用 Dustjs 进行 Angular 模板化

javascript - 从 cookie 存储中获取对象后属性消失

javascript - 使用 Angularjs Expressjs Node 和 MEAN.js 通过 POST 方法将数组传递给 $resource

javascript - 从 URL 中删除 '%20' - React-Router

javascript - jQuery 更改追加 onClick

javascript - dispatchEvent 'mouseover' 不工作

angularjs - 使用 angularjs UI-Router 的文件下载链接