我有可观察的变量:
var mouse = ko.observable({
x: ko.observable(),
y: ko.observable()
});
我希望在mouse
或x
更改时调用y
的订阅事件:
mouse.subscribe(function(){
alert('changed');
});
mouse().x(5);
mouse().y(7);
但事实并非如此。你能提出什么建议吗?
答案 0 :(得分:1)
您可以添加:
mouse().x.subscribe(function () { mouse.valueHasMutated() });
http://jsfiddle.net/nyothecat/x9MWp/
甚至更好:
for (var prop in mouse()) {
if (ko.isObservable(mouse()[prop])) mouse()[prop].subscribe(function () { mouse.valueHasMutated() });
}
答案 1 :(得分:0)
创建一个计算的observable,它是x和y的函数:
self.mousePos = ko.computed(function() {
return self.x() + self.y();
});
然后订阅mousePos
。