从 Javascript 设置时聚合物 属性 不更新
Polymer property not updating when set from Javascript
我把这个简单化了属性(聚合物2.x):
static get properties() {
return {
bpm: {
type: Number,
value: () => {
return 0
},
observer: "_bpm"
}
}
}
我尝试在单击按钮时调用的函数中使用 this.bpm = 60;
更新它。如果我使用 console.log(this.bpm);
输出值,它会显示正确的值,但我的标题 <h2 id="bpm">[[bpm]]</h2>
不会更新,也不会调用观察者。
当使用 <paper-slider value="{{bpm}}"></paper-slider>
之类的东西设置 bpm
时,它会起作用。
我做错了什么?感谢您的帮助!
社区会更容易知道这个问题已在请求的评论中得到回答。
初始问题:绑定值未更新,因为 bpm
属性 是从元素外部的函数设置的。
Correction :这里是一个有效的 JSFiddle(在 chrome 中使用)用于演示如何使用绑定。
由于从不同的函数设置 属性,我也遇到了类似的问题。放在这里供参考。
我的代码:
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
实际上指的是 setInterval
的 min
。
使用箭头函数解决了这个问题,将调用替换为 setInterval(() => {...});
我把这个简单化了属性(聚合物2.x):
static get properties() {
return {
bpm: {
type: Number,
value: () => {
return 0
},
observer: "_bpm"
}
}
}
我尝试在单击按钮时调用的函数中使用 this.bpm = 60;
更新它。如果我使用 console.log(this.bpm);
输出值,它会显示正确的值,但我的标题 <h2 id="bpm">[[bpm]]</h2>
不会更新,也不会调用观察者。
当使用 <paper-slider value="{{bpm}}"></paper-slider>
之类的东西设置 bpm
时,它会起作用。
我做错了什么?感谢您的帮助!
社区会更容易知道这个问题已在请求的评论中得到回答。
初始问题:绑定值未更新,因为 bpm
属性 是从元素外部的函数设置的。
Correction :这里是一个有效的 JSFiddle(在 chrome 中使用)用于演示如何使用绑定。
由于从不同的函数设置 属性,我也遇到了类似的问题。放在这里供参考。
我的代码:
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
实际上指的是 setInterval
的 min
。
使用箭头函数解决了这个问题,将调用替换为 setInterval(() => {...});