我以简化形式使用以下代码。 我有一个模板,显示来自_stores数组的商店列表。根据应用程序中设置的其他属性,_sort和_filter函数会很好地完成各自的工作并显示我想查看的列表。聚合物template.render()不可靠
当我重新计算每个商店的距离(运行_stores trough calculateDistance)时,我想通过调用_search()调用Polymer .render()函数来重新呈现商店列表。
这个调用是不可靠的:有时会渲染,有时不会。它发生在桌面和移动,safari和android,所以它似乎是一个聚合物问题。我无法找到造成这种情况的原因。任何想法?
<template id="storeList" is="dom-repeat" items="{{_stores}}" sort="_sort" filter="_filter">
<div class="search_result">
<div class="picture">
<div class="logo" hidden$="{{!item.logo.length}}">
<div class="centered">
<img src$="{{item.logo}}" alt="logo" />
</div>
</div>....
</template>
<script>
Polymer({
is: 'user-store-search-page',
properties: {
...
_stores: Array
...
},
_calculateDistance: function() {
this._stores.forEach(s) {
//do stuff per store
}
},
_filter: function (store) {
//do filtering stuff
},
_sort: function (a, b) {
//sort stuff
},
_search: function() {
this.$.storeList.render();
}
你需要真正使这个列表进行任何动作使用的计算性能优势,为重新呈现你的名单?你的阵列上的任何变化应该是可见的 – Kejt
我也这么认为。 我看到我使用原生JavaScript数组突变。这就是我称之为渲染的原因。 奇怪的是,有时候会渲染! 我发现了一个解决方法,创建一个空的对象: –