使用变更观察程序来观察Object.obsobe()下的本机属性
Using change watchers to observe native properties under Object.observe()
既然Object.observe()
在Chrome中默认打开,我遇到了很多情况,我想重用浏览器的内置属性(hidden
、title
、draggable
),但当属性更改时,*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
Object.observe()
用于JavaScript内容,MutationObserver
用于DOM元素。在这种情况下,MutationObserver可能会更好地工作。
这似乎是Polymer 1的旧帖子,可能不再是一个有用的问题。
Object.obsote()提议已被撤回,任何浏览器都不支持它。
聚合物现在使用支持观察者的声明特性。
相关文章:
- 未激发路由的控制器属性上的观察者
- 如何从具有动态可观察属性的淘汰对象中获取 JSON 字符串
- 使用挖空 JS 映射选项将可观察属性添加到映射的可观察数组
- Knockout.js - 如何在计算的可观察量中获取可观察属性的值
- 更改一个对象的可观察属性会更改集合中所有对象的属性
- PUT 期间不包括视图模式可观察属性
- 观察属性的角度指令
- 如何观察属性并在重新加载时清除它们
- 使用Jquery观察属性更改
- 一个JSON对象数组,用可观察属性击倒可观察对象数组
- 对数组中所有对象的可观察属性进行单个MobX自动运行或反应
- Knockoutjs:绑定到模板中数组之外的一个可观察属性
- 使用ko.computed和if语句来设置对象的可观察属性
- 在可观察数组中推入具有可观察属性的对象仍然跟踪对象的属性
- 如何在angularjs指令中观察属性
- 循环遍历具有可观察属性的JS对象
- 击倒绑定选择与自定义对象的可观察属性
- AngularJS:观察/观察属性的改变
- 如何创建具有可观察属性的对象
- 带有KnockoutJS可观察属性的JavaScript克隆对象