我只是在寻找一个快速的答案,因为我现在无法解决它。
我想通过一个操纵依赖的observables的函数,根据不同的其他observable的值更新一个observable。
假设我有一个包含2个字段的对象。其中1个也是一个对象,2个是我想要更新的可观察对象。
function Control(elem) {
var self = this;
self.element = element;
self.calc = ko.observable();
}
然后我有一个函数可以考虑元素并提供一个值。
function Control(elem) {
var self = this;
self.element = element;
self.calc = ko.observable('10');
self.doSomething = function () {
var dummy = 0;
if (self.element.number() === 1)
dummy = self.element.value + 10;
else
dummy = self.element.value + '+ 10';
return dummy;
}
}
每次 number 或 value 元素之一时,如何使用函数返回的结果更新 calc 变化?
我提到我不想直接用 dummy 替换它来更新 calc ,因为它会使可观察的触发器过多次。
JsFiddle:http://jsfiddle.net/razvangl/cf3kB/
答案 0 :(得分:0)
确定。我解决了我只是使 calc 成为一个计算的observable,它等于函数 doSomething 。
function Control(elem) {
var self = this;
self.element = elem;
self.calc = ko.computed(function () {
var dummy = 0;
if (self.element.number() === 1)
dummy = self.element.value + 10;
else
dummy = self.element.value + '+ 10';
return dummy;
});
}