Polymer 聚合物应用程序路径通过功能问题重定向
就在我认为我了解了应用程序路由是如何工作的时候,我遇到了一个问题,让我怀疑我对这个元素的理解是否正确 据我所知,应用程序位置负责保持浏览器URL和路由值同步。如果其中一个更改了应用程序位置,请注意另一个也在更改 由于app route的route属性与其数据属性同步,下面代码中的纸张选项卡更改数据属性会导致app route的route属性更改,从而导致app location更新浏览器URL 但是,由于我没有在纸张选项卡中使用回退选择属性,冲浪将把路径设置为“/”,因此不会显示主页 所以我想我可以用ready函数中的代码重定向URL。但不幸的是,route.path确实会更改,但URL不会更改 为什么呢?我必须如何通过函数手动重定向路线? 或者换句话说:为什么通过paper tabs元素更改routeData.subpage会导致重定向,而从函数更改routeData.subpage不会导致重定向Polymer 聚合物应用程序路径通过功能问题重定向,polymer,polymer-1.0,polymer-1.x,Polymer,Polymer 1.0,Polymer 1.x,就在我认为我了解了应用程序路由是如何工作的时候,我遇到了一个问题,让我怀疑我对这个元素的理解是否正确 据我所知,应用程序位置负责保持浏览器URL和路由值同步。如果其中一个更改了应用程序位置,请注意另一个也在更改 由于app route的route属性与其数据属性同步,下面代码中的纸张选项卡更改数据属性会导致app route的route属性更改,从而导致app location更新浏览器URL 但是,由于我没有在纸张选项卡中使用回退选择属性,冲浪将把路径设置为“/”,因此不会显示主页 所以我想我
<dom-module id="polymer-app">
<template>
<style>
:host {
display: block;
}
</style>
<app-location route="{{route}}"></app-location>
<app-route id="ar"
route="{{route}}"
pattern="/:subpage"
data="{{routeData}}"
tail="{{routeTail}}"
active="{{routeActive}}">
</app-route>
<header>
<paper-tabs attr-for-selected="name" selected="{{routeData.subpage}}">
<paper-tab name="home">Home</paper-tab>
<paper-tab name="settings">Settings</paper-tab>
</paper-tabs>
</header>
<section id="main">
<iron-pages attr-for-selected="name" selected="[[routeData.subpage]]">
<home-page name="home"></home-page>
<settings-page name="settings"></settings-pagina>
</iron-pages>
</scection>
</template>
<script>
Polymer({
is: 'polymer-app',
properties: {
route: Object,
routeData: Object,
routeTail: Object,
routeActive: Boolean,
},
ready: function() {
if (this.route.path == "/") {
this.set('routeData.subpage', 'home');
console.log(this.routeData);
console.log(this.route);
}
},
});
</script>
</dom-module>
:主持人{
显示:块;
}
家
设置
聚合物({
是:“聚合物应用程序”,
特性:{
路线:对象,
routeData:对象,
routeTail:对象,
routeActive:Boolean,
},
就绪:函数(){
如果(this.route.path==“/”){
此.set('routeData.subpage','home');
console.log(this.routeData);
console.log(this.route);
}
},
});
添加带有观察者的页面属性,该观察者将为其分配当前值(基于URL)或默认值(如果URL路径为空)
static get properties() {
return {
page: {
type: String,
reflectToAttribute: true,
observer: '_pageChanged',
},
}
static get observers() {
return [
'_routePageChanged(routeData.page)',
];
}
_routePageChanged(page) {
// If no page was found in the route data, page will be an empty string.
// Default to 'home' in that case.
this.routeData.subpage = page || 'home';
}