knockoutjs值限制绑定

我正在使用knockoutjs来实现购物车。 其中一个要求是允许客户更改项目数量。 所以我自然而然

 

在我的视图模式中,我将Item ViewModel定义为

 Item = function(){ ... _self.quantity = ko.observable(1); ... } 

但是还有一个要求是购物车中的总金额应该有一个上限。

我可以使用jquery拦截“更改”事件并在那里添加一些逻辑,但我想知道是否有任何本机淘汰方式来做类似的事情

 <input type="text" data-bind="value: quantity where quantity*uniprice  

你应该使用计算出的knockout observables :

视图模型:

 Item = function(){ ... _self.quantity = ko.observable(1); _self.attemptedQuantity = ko.computed({ read: function () { return _self.quantity(); }, write: function (value) { if (value * uniprice <= maxDollarAmount) { self.quantity(value); } else { // alert or something } } }); ... } 

HTML:

  

改为使用计算的observable。 它让你编写逻辑来处理你绑定的值。

http://knockoutjs.com/documentation/computedObservables.html