Knockout 2.2+ includes a peek function to access observables without subscription. So you can do the following:
ko.computed(function () { var s = self.SearchParams; NS.post({ url: '/SomeUrl', data: { OrderStatusID: s.OrderStatusID(), OrderNumber: s.OrderNumber.peek(), OrderBy: s.OrderBy(), OrderByDirection: s.OrderByDirection(), PageIndex: s.PageIndex(), PageSize: s.PageSize() } }); }).extend({ throttle: 1 });
If you're stuck in Knockout 2.1.0, you can increase your visibility manually by adding peek like this (thanks Ryan Niemeyer):
var backdoorObservable = function(initialValue) { var _value = initialValue, result = ko.observable(initialValue); result.peek = function() { return _value; }; result.subscribe(function(newValue) { _value = newValue; }); return result; };
And then use backdoorObservable for OrderNumber :
OrderNumber: backdoorObservable()
source share