Polymer 聚合物路线更改运行两次

Polymer 聚合物路线更改运行两次,polymer,polymer-1.0,polymer-starter-kit,Polymer,Polymer 1.0,Polymer Starter Kit,当我通过链接或JS this.set('route.path','packages')更改页面时;_routePageChagned方法运行了两次。它也发生在页面第一次加载时 这也发生在从CLI生成的默认聚合物初学者工具包模板中 我错过了什么?这怎么可能发生 <link rel="import" href="../bower_components/polymer/polymer.html"> <link rel="import" href="../bower_component

当我通过链接或JS this.set('route.path','packages')更改页面时;_routePageChagned方法运行了两次。它也发生在页面第一次加载时

这也发生在从CLI生成的默认聚合物初学者工具包模板中

我错过了什么?这怎么可能发生

<link rel="import" href="../bower_components/polymer/polymer.html">
<link rel="import" href="../bower_components/app-route/app-location.html">
<link rel="import" href="../bower_components/app-route/app-route.html">
<link rel="import" href="../bower_components/iron-pages/iron-pages.html">
<link rel="import" href="my-icons.html">

<link rel="import" href="pages/my-loading.html">

<dom-module id="my-app">
  <template>
    <style>
    </style>


    <app-location route="{{route}}"></app-location>
    <app-route
        route="{{route}}"
        pattern="/:page"
        data="{{routeData}}"
        tail="{{subroute}}"></app-route>

        <iron-pages
            id="pages"
            selected="[[page]]"
            attr-for-selected="name"
            fallback-selection="view404"
            selected-attribute="visible"
            role="main">

          <my-loading name="loading"></my-loading>
          <my-login name="login"></my-login>
          <my-view404 name="view404"></my-view404>
          <my-view403 name="view403"></my-view403>
          <my-packages name="packages"></my-packages>
        </iron-pages>
  </template>

  <script>
    Polymer({
      is: 'my-app',

      properties: {
        /**
         * The current page.
         */
        page: {
          type: String,
          reflectToAttribute: true
        },
      },

      observers: [
        '_routePageChanged(routeData.page)'
      ],


      _routePageChanged: function(page) {
        console.log(page);
        var resolvedPageUrl = this.resolveUrl('pages/my-' + page + '.html');
        this.importHref(resolvedPageUrl, function() {
          this.page = page;
        }.bind(this), undefined, false);
      }

    });
  </script>
</dom-module>

聚合物({
是:“我的应用程序”,
特性:{
/**
*当前页面。
*/
第页:{
类型:字符串,
reflectToAttribute:真
},
},
观察员:[
“_routePageChanged(routeData.page)”
],
_routePageChanged:功能(第页){
控制台日志(第页);
var resolvedPageUrl=this.resolveUrl('pages/my-'+page+'.html');
this.importHref(resolvedPageUrl,函数(){
this.page=page;
}.绑定(本),未定义,错误);
}
});

这是一个黑客补丁,但仍然不知道为什么需要它

_pageChange: function(page) {
  this.debounce(function() {
    // Load page import on demand. Show 404 page if fails
    var resolvedPageUrl = this.resolveUrl('pages/my-' + page + '.html');
    this.importHref(resolvedPageUrl,
    this._pageLoaded.bind(this, page),      // loaded callback
    this._pageChange.bind(this, 'view404'),
    true);
  }.bind(this), 100);
}