Polymer 聚合物应用程序路径通过功能问题重定向

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 但是,由于我没有在纸张选项卡中使用回退选择属性,冲浪将把路径设置为“/”,因此不会显示主页 所以我想我

就在我认为我了解了应用程序路由是如何工作的时候,我遇到了一个问题,让我怀疑我对这个元素的理解是否正确

据我所知,应用程序位置负责保持浏览器URL和路由值同步。如果其中一个更改了应用程序位置,请注意另一个也在更改

由于app route的route属性与其数据属性同步,下面代码中的纸张选项卡更改数据属性会导致app route的route属性更改,从而导致app location更新浏览器URL

但是,由于我没有在纸张选项卡中使用回退选择属性,冲浪将把路径设置为“/”,因此不会显示主页

所以我想我可以用ready函数中的代码重定向URL。但不幸的是,route.path确实会更改,但URL不会更改

为什么呢?我必须如何通过函数手动重定向路线? 或者换句话说:为什么通过paper tabs元素更改routeData.subpage会导致重定向,而从函数更改routeData.subpage不会导致重定向

<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';
    }