我目前正在尝试观察给定对象及其所有元素的任何更改。
以下代码只在更新 object[x] 时触发,而不会在单独更新 object[x][y] 等元素时触发。
<script>
var elem = document.getElementById("test1");
var log = function(x) {
elem.innerHTML += x + "<br/><br/><br/>";
};
var a = [{a:1,b:2},
{a:2,b:5}
];
var source = Rx.Observable
.ofObjectChanges(a)
.map(function(x) {
return JSON.stringify(x);
});
var subscription = source.subscribe(
function (x) {log(x);},
function (err) {log(err);},
function () {log('Completed');}
);
a[0] = a[1];
</script>
这段代码可以正常运行和触发。
然而,如果我改为以下方式
a[0]['a'] = 3;
那么什么也不会发生。
编辑
更好的表达方式是,我如何观察来自对象数组的变化?
ofArrayChanges
。 - paulpdaniels