的jsfiddle鏈接獲得價值:http://jsfiddle.net/T8ee7/淘汰賽-2.2.0,訂閱前的變化和新的價值
當我打電話淘汰賽的訂閱方法有沒有方法可以讓我同時獲得了以前和現在的價值?現在,我只能分別調用這些值。 如果舊值和新值不同,我想觸發一些代碼。
我想我可以做到以下幾點,但它會導致混亂... (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);
在http://stackoverflow.com/questions/12822954/get-previous-value回答-of-AN-觀察到,在訂閱-的,同樣可觀察 – Nishanthan