1

ko.computed メソッドを持つ単純なビューモデルがあります。この ko.computed メソッドには、複数の ajax 呼び出しが含まれています。アンカー タグから ko.computed メソッドを呼び出して、データ セットを更新したいだけです。

私のビューモデル:

var MyDataViewModel = {
     Date: ko.observable(FormatDate()),
     Receiving: ko.observableArray(),
     Triage: ko.observableArray(),
     Technician: ko.observableArray(),
     Scrap: ko.observableArray(),
     Refurb: ko.observableArray(),
     CA: ko.observableArray(),
     Dispatch: ko.observableArray()
}

MyDataViewModel.Refresh = ko.computed(function () {
   var self = MyDataViewModel;
       //AJAX CALLS HERE
    });

私のアンカータグ:

<a href="#Refresh" data-bind="click: Refresh" ><i class="icon-refresh"></i></a>

アンカー タグをクリックすると、次のメッセージが表示されます。

キャッチされないエラー: 'write' オプションを指定しない限り、ko.computed に値を書き込むことはできません。現在の値を読み取りたい場合は、パラメーターを渡さないでください。

任意の提案支援をいただければ幸いです。

4

1 に答える 1

1

clickバインディングには、クリックしたときに実行される関数が必要なので、ko.computedここでは必要ありませんfunction:

MyDataViewModel.Refresh = function () {
        var self = MyDataViewModel;
         //AJAX CALLS HERE
};

ko.computed既存の監視可能なプロパティから新しい値を計算する場合にのみ使用する必要があります。計算された観察可能なドキュメントから:

firstName のオブザーバブルと lastName のオブザーバブルがあり、フルネームを表示したい場合はどうすればよいでしょうか? ここで、計算されたオブザーバブルが登場します。これらは、1 つ以上の他のオブザーバブルに依存する関数であり、これらの依存関係のいずれかが変更されるたびに自動的に更新されます。

于 2013-09-04T11:47:55.057 に答える