Polymer 聚合物路线更改运行两次
当我通过链接或JS this.set('route.path','packages')更改页面时;_routePageChagned方法运行了两次。它也发生在页面第一次加载时 这也发生在从CLI生成的默认聚合物初学者工具包模板中 我错过了什么?这怎么可能发生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
<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);
}