Javascript 聚合物2铁选择器选择元素不';在dom更改元素的顺序后更新

Javascript 聚合物2铁选择器选择元素不';在dom更改元素的顺序后更新,javascript,polymer-2.x,Javascript,Polymer 2.x,我有一个组件,它有4个实例 用户单击数字2,产品B被选中 当dom被重新排序时,稍后在他选择另一个选项后,组件卡块的这4个实例被重新排序(因为价格变化,所以这在流程中自动发生)都很好。。。除了所选元素(编号2)移动到位置1之外 而且。。。继续选择第二个元素,而不是产品B 用户界面显示所选产品D 似乎polymer 2在重新绘制DOM时忽略了此选定属性。我怎样才能避免这种情况 <iron-selector id="something-semantic" attr-for-selected="

我有一个组件,它有4个实例

用户单击数字2,产品B被选中

当dom被重新排序时,稍后在他选择另一个选项后,组件卡块的这4个实例被重新排序(因为价格变化,所以这在流程中自动发生)都很好。。。除了所选元素(编号2)移动到位置1之外

而且。。。继续选择第二个元素,而不是产品B

用户界面显示所选产品D

似乎polymer 2在重新绘制DOM时忽略了此选定属性。我怎样才能避免这种情况

<iron-selector id="something-semantic" attr-for-selected="value" selected={{value}}>
    <template is="dom-repeat" items="[[filteredProductosCategorias]]" as="productoCategoria" id="productoTipo">
        <div class="card-brick" value="[[productCategoria.id]]" tabindex="1" on-keyup="_seleccionaCategoria">
        </div>
    </template>
</iron-selector>

选择将按DOM顺序粘贴到先前选择的元素。如何使此选定值同时更新don dom更改

有没有克服这个问题的建议??用户可能会感到困惑


问题在于dom repeat无法重建内部元素,因为这将是一个繁重的操作。它只是为子元素指定新的值,这意味着iron选择器不知道内容是否已更改。在本例中,您选择了第二个元素,重新排序后,它仍然是选定的第二个元素


我对
\u selectCategory
的作用感到困惑,因为如果它设置了类别,那么您甚至可能不需要
铁选择器。我自己从来没有使用过这个元素(也永远不会使用它,因为自己编写它很简单)。无论如何,如果您使用
\u selectCategory
重新排序,那么只需使用
this.set()

设置新的
属性,而无需设置类别,它只是一个重命名的函数。黑暗的一面是引擎盖下的元素“仍然被选中”。。但没有反映在UI上。移除铁选择器,我们团队一直在思考,移除铁选择器,因为这似乎是一个常见问题,我在poylmer的回购协议中发现了几个github问题。无论如何,我们需要仔细研究它,因为许多其他组件依赖于相同的功能。但是,正如你所说,我完全同意DIY会更好。还有,我只是说,我真的觉得我不喜欢聚合物。是的,在过去的三年里,我一直在聚合物方面工作;从1升级到2是一种享受。还有一些奇怪的纠结。无论如何,我会将一个属性添加到
filteredProductsCategories
中的项目中,比如“selected”:“selected”,然后将其作为类添加:
class$=“[[selected]]”
。最后添加一个ontap侦听器,然后更改所有项目中的
selected
值(删除,然后将“selected”添加到正确的项目中)。