0

我只是在寻找一个快速的答案,因为我现在无法解决它。

我想通过一个操作依赖的可观察对象的函数根据不同的其他可观察对象的值来更新可观察对象。

假设我有一个包含 2 个字段的对象。其中 1 个也是一个对象,第 2 个是我想要更新的 observable。

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;
    }
}

每次元素的数字属性之一发生更改时,如何使用函数返回的结果更新计算?

我提到我不想通过用dummy替换它来直接更新calc,因为它会使 observable 触发太多次。

JsFiddle:http: //jsfiddle.net/razvangl/cf3kB/

4

1 回答 1

0

好的。我解决了。我只是将calc设置为一个等于函数doSomething的计算 observable 。

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;
    });
}
于 2013-09-20T12:24:10.050 回答