现在默认情况下,Chrome中的Object.observe()处于启用状态,我遇到了一些我希望重用浏览器的内置属性(隐藏,标题,可拖动)的情况,但*更改后的观察者不再被调用财产变化.
一个例子是隐藏的: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); } }
推荐的方法是什么?
BTW,在尝试使用本机属性时发出警告将需要很长时间进行调试:https://github.com/Polymer/polymer/issues/379
解决方法
Object.observe()用于JavaScript的东西,MutationObserver用于DOM元素. MutationObserver在这种情况下可能会更好.