识别可观察的更新程序的最佳方法是什么?

时间:2014-05-07 12:53:53

标签: javascript knockout.js

鉴于任何淘汰赛示例,我希望能够识别可观察更新的来源

例如考虑这个简单的代码:

HTML

<input type='text' data-bind='value: someValue' />
<span data-bind='text: someValue'></span>
<button data-bind='click: updateValue'>Update</button>

JS

var vm = function () {
    var self = this;
    this.someValue = ko.observable('random value');
    this.updateValue = function () {
        self.someValue('random value ' + Math.round(Math.random()*10));
    }
}

var vmi = new vm();

vmi.someValue('other random value');

ko.applyBindings(vmi);

Fiddle

我想通过输入标签,按钮或代码了解someValue是否上次更新。

您认为最佳方式这样做会是什么? (扩展程序,自定义绑定处理程序,...)

1 个答案:

答案 0 :(得分:5)

为每个要修改的内容创建单独的“可写计算可观察量”。见http://knockoutjs.com/documentation/computedObservables.html#writeable_computed_observables。在每种方法的write方法中,您可以根据需要处理它们之间的区分/协调/同步。如果您描述了实际情况,可能会有更好的解决方案。