从 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 实际上指的是 setIntervalmin

使用箭头函数解决了这个问题,将调用替换为 setInterval(() => {...});