我有一个组件,它获取一些数据。路径是动态的,因为它内部有一个绑定。
然后我有一些动态改变路径的链接。我希望数据列表会相应更新。
当我第一次加载页面时,一切正常,但是每当我单击链接以更新路径(并因此获取新数据)时,它什么都不返回。
我检查了观察者的情况,看起来每当我更新路径时,数据都会更新两次:首先它返回我期望的实际数据,然后它返回一个空数组。
这是组件:
<dom-module id="test-one">
<template>
<firebase-query app-name="main" path="/templates/[[template]]" data="{{items}}"></firebase-query>
<a on-tap="changeTemplate" data-template="template1">Template 1</a><br />
<a on-tap="changeTemplate" data-template="template2">Template 2</a><br />
<p>Current template is [[template]]</p>
<template is="dom-repeat" items="{{items}}" as="item">
[[item.ref]] - [[item.description]]<br />
</template>
</template>
<script>
Polymer({
is: 'test-one',
properties: {
items: {type: Array, observer: "dataChanged"},
template: {type: String, value: "template1"},
},
dataChanged: function(newData, oldData) {
console.log(newData);
},
changeTemplate: function(e) {
elm = e.currentTarget;
template = elm.getAttribute("data-template");
console.log("link has been clicked, we're changing to "+template);
this.set("template", template);
}
});
</script>
</dom-module>
这是我单击其中一个链接时控制台显示的内容:
似乎有一些不同步的巫术正在发生 - 关于如何解决这个问题的任何想法?