0

サーバー(AJAX + JSON)から取得したアイテムのリストと、リストをフィルタリングするこのアイテムのステータスのフィルターがあります。フィルター値が変更されるとすぐにリストが更新されます (新しい Ajax リクエストが投稿されます)。助けてください

  <select data-bind="options: statuses, value: selectedStatus">
  ...
 <table>
   <tbody data-bind="foreach: items">
   ...
   </tbody>
 </table>

 function Model() {
      var self = this;
      self.items =  ko.observable();
      self.statuses = ko.observable();
      self.selectedStatus = ko.observable();
 }

更新: アプローチの 1 つは、次のようにモデル内の selectedStatus の変更をサブスクライブすることです。

self.SelectedStatus.subscribe(function () {
            $.getJSON(...)
});

そうするのが最善の方法ですか?

4

2 に答える 2

1

One of possible ways is to use Computed Observables

Short Example

So you can update your items when selected value changed.

于 2012-05-10T20:17:41.633 に答える
1

更新を組織化する別の方法 - リストを更新する関数を呼び出すトリガー計算オブザーバブルを作成するだけです

例を見る

しかし、これが最善の方法かどうかはわかりません.Subscribeが最も簡単な方法だと思いますが、ajaxリクエストのlokerを忘れないでください!

于 2012-05-11T07:54:35.843 に答える