gpt4 book ai didi

javascript - 在子值更改后重新排序 Polymer dom-repeat

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:13:00 25 4
gpt4 key购买 nike

我有一个 Polymer dom-repeat 列表, children 可以在其中排序。关于初值。当我更改子项内部的 a 值时,列表的依赖排序顺序不会更新。我怎样才能最好地实现这一目标?

<body>
<list-records></list-records>

<dom-module id="list-records">
<template>
<template is="dom-repeat"
items="{{records}}"
sort="sortByValue">
<single-record record="{{item}}"
base="{{base}}">
</single-record>
</template>
</template>
<script>
Polymer({
is: 'list-records',
properties: {
records: {
type: Array,
value: [
{number:1, value:4},
{number:2, value:2},
{number:3, value:3}]
}
},
sortByValue: function(a, b) {
if (a.value < b.value) return -1;
if (a.value > b.value) return 1;
return 0;
}
});
</script>
</dom-module>

<dom-module id="single-record">
<template>
<div>
Number: <span>{{record.number}}</span>
Value: <span>{{record.value}}</span>
<button on-tap="_add">+</button>
</div>
</template>
<script>
Polymer({
is: 'single-record',
properties: {
record: Object,
},
_add: function() {
this.set('record.value', this.record.value + 1);
}
});
</script>
</dom-module>
</body>

背景:在基于真实位置的应用程序中,我有一个中心位置(纬度、经度)并获取中心周围位置的键列表。我为每个键创建一个 child 。 child 使用 key 从数据库中获取经纬度信息(异步)。使用来自中心和位置的经纬度信息,我可以计算出 child 体内的距离。该列表应按计算的距离排序。

最佳答案

在您的 single-record 组件中,您的 record 属性不允许双向数据绑定(bind),因此它不会将该记录更改回 列表记录 元素。要启用双向数据绑定(bind),您必须使用 notify:true 声明 record 属性。

properties: {
record: {
type: Object,
notify: true
}
}

来源:https://www.polymer-project.org/1.0/docs/devguide/properties

关于javascript - 在子值更改后重新排序 Polymer dom-repeat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41109820/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com