Polymer 聚合物,更改链接应用程序路线元素上的路线
我在一个具有以下结构的项目上使用来自的应用程序路由元素: 包含以下代码的Polymer 聚合物,更改链接应用程序路线元素上的路线,polymer,polymer-1.0,Polymer,Polymer 1.0,我在一个具有以下结构的项目上使用来自的应用程序路由元素: 包含以下代码的my app元素: <app-location route="{{route}}"></app-location> <app-route route="{{route}}" pattern="/:page" data="{{routeData}}" tail="{{subroute}}"> </app-route> <iron-pages selecte
my app
元素:
<app-location route="{{route}}"></app-location>
<app-route
route="{{route}}"
pattern="/:page"
data="{{routeData}}"
tail="{{subroute}}">
</app-route>
<iron-pages selected="[[page]]" attr-for-selected="name">
<store-main-page
name="loja"
route="{{subroute}}"
categories="[[categories]]">
</store-main-page>
...
</iron-pages>
...
因此,访问/
路径将显示欢迎页面,访问/loja/categoria
,我的应用程序
将调用商店主页
,该主页将调用类别页面
我的问题是,我想在显示商店主页之前对用户进行身份验证,如果用户未经身份验证,请将其重定向到/
上的欢迎页面。有没有一种方法可以使用应用程序路径
我发现使用approute
更改页面的唯一方法是调用
this.set('route.path', 'path');
但这在链式路由上不起作用,在我的情况下,这将导致重定向到/loja/
路径,这不是我想要的
如何更改父元素上的路由?这可能吗?我刚刚发现应用程序位置
只是铁位置
和应用程序路线
之间的接口
因此,我解决了向子元素添加iron location
并更改其path
属性的问题
确切的代码是:
<iron-location id="ironLocation"></iron-location>
...
</template>
<script>
...
attached: function() {
if (!userAuth()) {
this.$.ironLocation.set('path', '/');
} else {
...
}
}
...
...
...
附加:函数(){
如果(!userAuth()){
此.$.ironLocation.set('path','/');
}否则{
...
}
}
...
我不知道这是否是一个理想的解决方案,但它是有效的
<iron-location id="ironLocation"></iron-location>
...
</template>
<script>
...
attached: function() {
if (!userAuth()) {
this.$.ironLocation.set('path', '/');
} else {
...
}
}
...