【发布时间】:2015-12-17 11:03:17
【问题描述】:
我目前正在尝试观察给定对象的任何变化,包括它的所有元素。
以下代码仅在更新 object[x] 时触发,但不会在单独更新 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开始。
标签: javascript rxjs frp