【发布时间】:2018-05-12 19:48:36
【问题描述】:
Angular2 使用 Route guard 来控制用户是否可以导航到或离开给定的路由,所以如果未经授权的用户尝试访问路径,路由守卫会保护。
在聚合物 1.0 中是否有其他的路由保护方式?如果不是,如何实施?
【问题讨论】:
标签: routing polymer polymer-1.0 polymer-starter-kit app-route
Angular2 使用 Route guard 来控制用户是否可以导航到或离开给定的路由,所以如果未经授权的用户尝试访问路径,路由守卫会保护。
在聚合物 1.0 中是否有其他的路由保护方式?如果不是,如何实施?
【问题讨论】:
标签: routing polymer polymer-1.0 polymer-starter-kit app-route
我不知道任何现有的实现,尽管搜索http://webcomponents.org 总是一个好主意,因为那里可能随时会弹出。
要自己实现这一点,首先要创建某种权限管理行为(或 Polymer 2 中的 mixin 类)(可能会查询 Web 服务以获取 {right1: Array<User>, ...} 的映射;但不要忘记缓存等...) 它有一个方法checkRight(rightName, user)。
然后,您可以将该行为/类混入消费元素,并将方法checkRight 绑定到您要保护的任何元素,例如铁页的孩子的hidden-attribute:
<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>
【讨论】: