我以簡化形式使用以下代碼。 我有一個模板,顯示來自_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數組突變。這就是我稱之爲渲染的原因。 奇怪的是,有時候會渲染! 我發現了一個解決方法,創建一個空的對象: –