Data binding 从Javascript设置时聚合物属性不更新

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中使用)。由于从不同的函数设置属性,我也面临类似的问

我制作了这个简单的属性(聚合物2.x):

我尝试使用
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);
    },
});