0

我正在使用 Knockout.js 开发一个计算器。我面临着一个我不知道如何处理的情况。在下面的示例中,当用户输入产品和值并将值保存在数据库中时,一切正常。但是当用户来编辑这个页面时,我的要求是显示用户输入的所有值以及总数。但是当用户更改产品或数量的某些内容时,总数应该会按预期发生变化。

我们现在将总数存储在数据库中,并且某些管理员用户可以更改总数。在这种情况下,有没有一种方法可以在用户进入编辑页面时覆盖计算值,但是当用户更改产品或数量时,然后计算应该使用来自产品和数量的最新值。

帮助表示赞赏。

var TsFoundationDeviceModel = function(product,qty) {
var self = this;
self.product = ko.observable();
self.quantity= ko.observable();
self.computedExample = ko.computed(function() {
   return self.product() * self.quantity() ;
});}

我的 HTML 代码看起来像

<input name="product" data-bind="value:product">
<input name="value" data-bind="value:value">
<input name="total" data-bind="value:computedExample"/>
4

2 回答 2

0

当您在计算中引用 observables 时,您需要将它们视为函数,而不是return self.product * self.quantity ;使用return self.product() * self.quantity();

小提琴:http: //jsfiddle.net/SAV9A/

于 2013-03-13T17:55:57.323 回答
0

您必须将视图绑定到屏幕。看看这个小提琴并给它

 var TsFoundationDeviceModel = function(product,qty) {
var self = this;
self.product = ko.observable(product);
self.quantity= ko.observable(qty);
self.computedExample = ko.computed(function() {
 return self.product() * self.quantity() ;
});}

ko.applyBindings(new TsFoundationDeviceModel(2,3));

http://jsfiddle.net/Z6VPV/5/

于 2013-03-13T17:48:28.977 回答