knockout.js - 在订阅同一可观察值时获取可观察值的前一个值

标签 knockout.js knockout-2.0 observable

在 knockout 中,在接收新值之前,是否可以在该可观察值的订阅中获取该可观察值的当前值?

示例:

this.myObservable = ko.observable();
this.myObservable.subscribe(function(newValue){
    //I'd like to get the previous value of 'myObservable' here before it's set to newValue
});

最佳答案

ko.subscribable.fn.subscribeChanged = function (callback) {
    var oldValue;
    this.subscribe(function (_oldValue) {
        oldValue = _oldValue;
    }, this, 'beforeChange');

    this.subscribe(function (newValue) {
        callback(newValue, oldValue);
    });
};

像这样使用上面的内容:

MyViewModel.MyObservableProperty.subscribeChanged(function (newValue, oldValue) {

});

关于knockout.js - 在订阅同一可观察值时获取可观察值的前一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12822954/

相关文章:

javascript - 测试 Angular 可观察对象是否发出值或序列

javascript - 具有两个功能的切换

javascript - Knockout JS 不清除组件

javascript - 最新的 knockout 和 jquery ui 对话框错误 : cannot call prior to initialization

Angular - 如何防止具有依赖可观察量的嵌套管道?

c# - 我如何断言 Observable 不会推送任何项目?

javascript - knockout 选择数据绑定(bind)

javascript - CSS 层,标题位于图像层下

jquery - 在移动事件后使用 KO_Sortable

knockout.js - 如何在点击事件中访问 observableArray?