我目前正在尝试观察给定对象的任何更改,包括它的所有元素.
以下代码仅在对象[x]更新时触发,但如果单独更新对象[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>
Run Code Online (Sandbox Code Playgroud)
此代码运行并正确触发.
然而.如果我改为这个
a[0]['a'] = 3;
Run Code Online (Sandbox Code Playgroud)
然后什么都没发生
编辑
一个更好的方法来表达这一点,我如何观察一组对象的变化?