我做了这个简单的属性(Polymer 2.x):
data2
我尝试在单击按钮时调用的函数中使用static get properties() {
return {
bpm: {
type: Number,
value: () => {
return 0
},
observer: "_bpm"
}
}
}
更新它。如果我使用this.bpm = 60;
输出值,则显示正确的值,但我的标题console.log(this.bpm);
未更新,并且未调用观察者。
当使用<h2 id="bpm">[[bpm]]</h2>
之类的内容设置bpm
时,它会起作用。
我做错了什么?谢谢你的帮助!
答案 0 :(得分:2)
社区将更容易知道这个问题已在请求的评论中得到解答。
初始问题:绑定值未更新,因为bpm
属性是从元素外部的函数设置的。
更正:这里有一个工作JSFiddle(在chrome中使用),用于演示如何使用绑定。
答案 1 :(得分:0)
由于从不同的功能设置属性,我也遇到了类似的问题。把它放在这里供参考。
Polymer({
is: 'test-test',
properties: {
min: {
type: Number,
value: -1,
observer: '_minChangedd'
}
},
_minChangedd: function (val) {
console.log(val);
},
ready: function () {
setInterval(function () {
this.min = this.min + 1;
}, 500);
},
});
setInterval
函数有自己的this
,因此表达式this.min
实际上是指min
的{{1}}。
使用箭头功能解决了问题,将呼叫替换为setInterval