7

Object.observe()Chrome ではデフォルトでオンになっているため、ブラウザーの組み込みプロパティ ( hiddentitledraggable)を再利用したい場合がたくさんあります*Changedが、プロパティが変更されたときにウォッチャーが呼び出されなくなりました。

一例は次のとおりですhidden: http://jsbin.com/jizikaje/1/edit (hiddenChanged()決して呼び出されません)

私の現在の回避策はattributeChanged()、属性の変化を観察するために使用することです:

attributeChanged: function(attrName, oldVal, newVal) {
  // Cannot use *Changed watchers for these native properties.
  if (attrName == 'hidden') {
    this.marker.setVisible(!this.hidden);
  }
}

推奨されるアプローチは何ですか?


ところで、ネイティブ プロパティを使用しようとしたときに警告をスローすると、デバッグに時間がかかります: https://github.com/Polymer/polymer/issues/379

4

2 に答える 2

0

Object.observe()は JavaScriptMutationObserver用で、DOM 要素用です。この場合、MutationObserver の方がおそらくうまく機能します。

于 2014-06-08T00:27:21.270 に答える