Data binding DOM不';从聚合物0.5迁移到1.0后,当特性发生变化时,t将更新

Data binding DOM不';从聚合物0.5迁移到1.0后,当特性发生变化时,t将更新,data-binding,polymer,dom-manipulation,polymer-1.0,Data Binding,Polymer,Dom Manipulation,Polymer 1.0,我正在使用dom repeat填充表中的行,因此: <tbody> <template is="dom-repeat" items="{{list}}" as="row"> <tr> <template is="dom-repeat" items="{{headers}}" as="header"> <td><template is="juicy-ht

我正在使用
dom repeat
填充表中的行,因此:

<tbody>
    <template is="dom-repeat" items="{{list}}" as="row">
        <tr>
            <template is="dom-repeat" items="{{headers}}" as="header">
                <td><template is="juicy-html" content$="{{getPropertyByName(row, header.name)}}"></template></td>
            </template>     
        </tr>   
    </template>
</tbody>
在升级到1.0之前,不需要该函数,因为我们可以直接取消引用,即
content=“{row[header.name]}”

我们有一个表的排序功能,它是通过单击表头触发的,在升级到1.0之前,表行中
{{list}}
的数据绑定意味着在JS函数中对
this.list
的元素进行排序会导致表行在DOM中移动。由于Polymer 1.0不能以这种方式工作,我不确定如何提醒Polymer属性已更改,我尝试使用
this.set('this.list.0',this.list[0])按照排序,我从中得到了一个想法,但这对我不起作用。在JS中对数据绑定属性排序后,如何让Polymer更改DOM


提前谢谢

要触发刷新,可以在模板上调用render()

this.$.templateID.render();

dom repeat
内置了对排序的支持,这里有文档

基本上,您可以将
sort
函数(与
Array.sort
提供的函数相同)附加到模板

this.$.templateID.render();

另外,您可以在模板上调用
render()
来强制重新渲染。

content=“{row[header.name}}”
将无法以任何方式使用它。感谢您的新知识!我更新了答案以反映正确的方式这肯定让我朝着正确的方向前进,它现在正在工作(遗憾的是,没有有趣的html)。非常感谢!为了让任何可能偶然发现这一点的人在将来感到愉快,下面是Scott使用
dom repeat
sort
render()编写的一些示例代码
。只是想知道,渲染函数是否需要在每次数据更改时调用?是临时的还是自Polymer 0.5以来发生了更改?这看起来仍然有效(Polymer 1.6.1至今)。