Angular2 使用 Route guard 来控制用户是否可以导航到或离开给定的路由,因此如果未经授权的用户尝试访问路径,路由守卫将进行保护。
聚合物 1.0 中的路由保护有其他替代方法吗?如果不是,如何实施?
Angular2 使用 Route guard 来控制用户是否可以导航到或离开给定的路由,因此如果未经授权的用户尝试访问路径,路由守卫将进行保护。
聚合物 1.0 中的路由保护有其他替代方法吗?如果不是,如何实施?
我不知道任何现有的实现,尽管搜索http://webcomponents.org总是一个好主意,因为它可能随时弹出。
要自己实现这一点,首先要创建某种权限管理行为(或 Polymer 2 中的 mixin 类)(可能会查询 Web 服务以获取{right1: Array<User>, ...}
; 但不要忘记缓存等等......)一种方法checkRight(rightName, user)
。然后,您可以将该行为/类混入消费元素,并将该方法绑定checkRight
到您要保护的任何元素,例如铁页的子hidden
属性:
<dom-module id="my-app">
<template>
<iron-pages ...>
<my-page-1 hidden$="[[checkRight('right1', currentUser)]]"></my-page-1>
<my-page-2 hidden$="[[checkRight('right2', currentUser)]]"></my-page-2>
...
</iron-pages>
</template>
<script>
Polymer({
is: 'my-app',
properties: {
currentUser: {...}
},
behaviors: [My.RightsManagedBehavior]
});
</script>
</dom-module>