Data binding 从Javascript设置时聚合物属性不更新
我制作了这个简单的属性(聚合物2.x): 我尝试使用Data binding 从Javascript设置时聚合物属性不更新,data-binding,polymer-2.x,Data Binding,Polymer 2.x,我制作了这个简单的属性(聚合物2.x): 我尝试使用this.bpm=60更新它。如果我使用console.log(this.bpm)输出值它显示正确的值,但我的标题[[bpm]]不会更新,也不会调用观察者。 当使用类似的方法设置bpm时,它会工作 我做错了什么?谢谢你的帮助 社区更容易知道这个问题在请求的评论中得到了回答 初始问题:绑定值未更新,因为bpm属性是从元素外部的函数设置的 更正:这里有一个用于演示如何使用绑定的工作(在chrome中使用)。由于从不同的函数设置属性,我也面临类似的问
this.bpm=60更新它单击按钮时调用的函数中的代码>。如果我使用console.log(this.bpm)输出值代码>它显示正确的值,但我的标题[[bpm]]
不会更新,也不会调用观察者。
当使用类似
的方法设置bpm
时,它会工作
我做错了什么?谢谢你的帮助 社区更容易知道这个问题在请求的评论中得到了回答
初始问题:绑定值未更新,因为bpm
属性是从元素外部的函数设置的
更正:这里有一个用于演示如何使用绑定的工作(在chrome中使用)。由于从不同的函数设置属性,我也面临类似的问题。把它放在这里作为参考
我的代码:
问题:
setInterval
函数有自己的this
,因此表达式this.min
实际上是指setInterval
的min
使用箭头函数解决了这个问题,将调用替换为setInterval(()=>{…})
尝试使用this.set('bpm',60)
而不是this.bpm=60
。使用set方法进行可观察的更改。您的观察者是正确的,但您也可以定义类似static get observer(){return[''u bpm(bpm)]}
this.set不工作:this.set不是函数
。不幸的是,观察家也不起作用。这是一个奇怪的问题,我试图复制它,但没有成功,你能添加所有的代码吗?我创建了一个可以帮助您的工作(在chrome上打开它)。好的,发现了问题:我已经将bpm从函数tap(){}
设置在Polymer.Element{}
括号之外,并认为它可以工作(我是初学者)。在内部设置一个函数是可行的,非常感谢。@p_0g_amm3_我的朋友,你不能说观察员也不工作:),因为我已经与许多观察员一起完成了一个详细的项目。我知道它应该如何工作。但我认为你无法在这里很好地解释你的问题。:)对不起,如果我这么肯定的话
static get properties() {
return {
bpm: {
type: Number,
value: () => {
return 0
},
observer: "_bpm"
}
}
}
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);
},
});