【发布时间】:2012-12-28 23:00:57
【问题描述】:
jsfiddle 链接:http://jsfiddle.net/T8ee7/
当我调用 Knockout 的 subscribe 方法时,有没有一种方法可以同时获取先前值和新值?现在,我只能分别调用获取这些值。 如果新旧值不同,我想触发一些代码。
我想我可以执行以下操作,但它可能会变得混乱...... (http://jsfiddle.net/MV3fN/)
var sv = sv || {};
sv.PagedRequest = function (pageNumber, pageSize) {
this.pageNumber = ko.observable(pageNumber || 1);
this.numberOfPages = ko.observable(1);
this.pageSize = ko.observable(pageSize || sv.DefaultPageSize);
};
var _pagedRequest = new sv.PagedRequest();
var oldValue;
_pagedRequest.pageNumber.subscribe(function (previousValue) {
console.log("old: " + previousValue);
oldValue = previousValue;
}, _pagedRequest, "beforeChange");
_pagedRequest.pageNumber.subscribe(function (newValue) {
console.log("new: " + newValue);
if (oldValue != newValue) {
console.log("value changed!");
}
});
_pagedRequest.pageNumber(10);
_pagedRequest.pageNumber(20);
【问题讨论】:
标签: knockout-2.0