0

Knockout.jsを使用して計算機を開発しています。どう対処したらいいのかわからない状況に直面しています。以下の例では、ユーザーが製品と値を入力し、値がDBに保存されると、すべてが正常に機能します。しかし、ユーザーがこのページを編集するようになると、私の要件は、ユーザーが入力したすべての値と合計を表示することです。しかし、ユーザーが製品または数量の何かを変更すると、合計は期待どおりに変更されるはずです。

合計をDBに保存し、一部の管理者ユーザーが合計を変更できるようになりました。この場合、ユーザーが編集ページに移動したときに計算値を上書きする方法はありますが、ユーザーが製品または数量を変更した場合は、計算は、製品と数量の最新の値を使用して行う必要があります。

ヘルプをいただければ幸いです。

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

ビューを画面にバインドする必要があります。このフィドルをチェックして、それを与えてください

 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 に答える
0

計算内でオブザーバブルを参照するときは、それらを関数のように扱う必要があるため、代わりにreturn self.product * self.quantity ;使用しますreturn self.product() * self.quantity();

フィドル: http://jsfiddle.net/SAV9A/

于 2013-03-13T17:55:57.323 に答える