我有以下情况: 从数组中呈现项目的自定义元素
<dom-module id="shopping-cart">
<template>
<style>
:host {
display: block;
}
</style>
<template is="dom-repeat" items=[[cartItems]]>
<tr>
<td>[[item.name]]</td>
<td><span>[[item.quantity]]</span> <small>[[item.uom]]</small></td>
<td><span>[[item.cost]]</span> <small>lei</small></td>
</tr>
</template>
</template>
<script>
(function() {
'use strict';
Polymer({
is: 'shopping-cart',
properties: {
cartItems: {
type: Object,
value: []
}
}
});
})();
</script>
<!-- And this is the container -->
<template is="dom-bind" id="app">
<shopping-cart cart-items="[[cartItems]]"></shopping-cart>
</template>
我正在根据某些事件操纵app.cartItems
对象。我希望在更改数组时更新绑定,但它不会。在推送新元素或删除其他元素时,更改不会反映在shopping-cart
元素中。我试图手动触发cart-items-changed
事件,但这仍然没有帮助。唯一似乎导致绑定刷新的事情是为app.cartItems
属性分配一个新数组,但这看起来并不正确。我觉得我错过了一些简单的步骤,但我无法弄清楚哪一个。有什么想法吗?
答案 0 :(得分:0)
见
每个Polymer元素都有以下可用的数组变异方法:
- push(path,item1,[...,itemN])
- 弹出(路径)
- unshift(path,item1,[...,itemN])
- 移(路径)
- splice(path,index,removeCount,[item1,...,itemN])
您需要使用其中一个聚合物来获得有关更改的通知。