两个观察者聚合物

Two observers Polymer

我有两个观察者,我在每个观察者中更改另一个观察者的 属性 的值。在这种情况下,我不希望其他观察者执行。 我如何更改观察者将仅在外部更改 属性 时执行?

谢谢

你必须使用这样的观察者:

Polymer({

  is: 'x-custom',

  properties: {
    preload: Boolean,
    src: String,
    size: String
  },

  observers: [
    'updateImage(preload, src, size)'
  ],

  updateImage: function(preload, src, size) {
    // ... do work using dependent values
  }

});

更多信息见:https://www.polymer-project.org/1.0/docs/devguide/properties.html#multi-property-observers

您最好的选择是使用局部变量来停止更新。

Polymer({
    is: 'my-element',
    properties: {
        myProperty: {
            type: String,
            observer: '_myObserverA'
        }
    },
    observers: [
        '_myObserverB(myProperty)'
    ],
    _myObserverA(newValue) {
        if(!this._localUpdate) {
            //do stuff here
        } else {
            this._localUpdate = false;
        }
    },
    _myObserverB(newValue) {
        this._localUpdate = true;
        //do stuff here
    }
})