【发布时间】:2015-10-08 12:50:01
【问题描述】:
Angular 不提供任何关于路由的授权/访问权限(我说的是默认的 Angular 路由 1.x,而不是 beta 2.0 或 UI 路由)。但我必须实现它。
我遇到的问题是我有一个服务调用服务器来提供此信息并返回一个承诺。但是这个数据只获取一次,然后缓存在客户端,但还是需要获取一次。
我现在想处理$routeChangeStart 事件,该事件检查下一条路由是否定义了特定属性authorize: someRole。然后,此处理程序应使用我之前提到的服务获取该数据,并根据返回的数据采取相应措施。
除了将 resolves 添加到我的所有路线之外还有什么想法吗?我可以以某种方式集中执行此操作吗?适用于所有路线一次?
最终解决方案
在接受的答案的帮助下,我能够实现一个相当简单且集中的解决方案来执行异步授权。 Click here 以查看它的运行情况或检查其内部工作代码。
【问题讨论】:
标签: angularjs routing authorization