【发布时间】:2017-06-10 09:18:39
【问题描述】:
我注意到 Polymer 中的模板/数据绑定似乎没有反映数组属性何时发生突变(即push())。示例代码如下:
<body>
<dom-module id="my-element">
<template>
<pre>
[my-element]
myArray: [[jsonStringify(myArray)]]
</pre>
</template>
</dom-module>
<my-element id="elm"></my-element>
<button onclick="pushArray()">pushArray</button>
<button onclick="setArray()">setArray</button>
<script>
(function registerElements() {
Polymer({
is: 'my-element',
properties: {
myArray: {
type: Array,
value: function () {
return [];
}
}
},
pushArray: function(value) {
this.push('myArray', {id: value});
},
setArray: function(value) {
this.set('myArray', [{id: value}]);
},
jsonStringify: function(obj) {
return JSON.stringify(obj);
}
});
})();
function pushArray () {
var elm = document.querySelector('#elm');
elm.pushArray('Push');
}
function setArray () {
var elm = document.querySelector('#elm');
elm.setArray('Set');
}
</script>
</body>
每当我单击pushArray 按钮时,myArray 中应添加一个“推送”项,但模板[[jsonStringify(myArray)]] 中没有反映。这是预期的行为吗?无论如何要解决这个问题?
【问题讨论】:
标签: polymer polymer-1.0