2012-05-10 6 views
0

サーバー(AJAX + JSON)から取得したアイテムのリストと、このアイテムの状態をフィルタリングしてリスト。フィルタ値が変更されるとすぐにリストが更新されるようにしたいです(新しいAjaxリクエストが投稿されました)。アプローチの一つは、このようなモデルの内側にselectedStatusチェンジのためにサブスクライブすることです:knockout.js:ユーザーが変更したフィルタ値としてリスト(サーバーへの呼び出し)を更新する方法

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

は、それがそうするための最良の方法です

<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(); 
} 

UPDATEを助けてください?

+0

質問が分かりません。 AJAXを使用している場合は、単にコールバックの値を更新しないでください。 – deltree

+0

質問は、サーバーコールバックを実行する方法です、私ははあなたのデータのフィルタですか? – deltree

答えて

1

アップデートをorgonaizeするもう一つの方法は - ちょうど..私はを考えるリスト

See example

を更新しかし、私はこれが最善の方法であることはよく分からないだろう関数を呼び出します観察可能な計算トリガーを作りますSubscribeは最も簡単な方法ですが、aokerのリクエストにはlokerを忘れていません!

1

可能な方法の一つは、選択した値が変更されたとき、あなたのアイテムを更新できるようにComputed Observables

Short Example

を使用することです。

+0

素晴らしい仕事!私のために作成したサンプルをありがとう – YMC

+0

唯一のことは、あなたのサンプルがサーバーからアイテムを要求していないことです。私はAjaxリクエストが必要なので、アイテムを即座に返すことができません。また、$ .getJSONコールバック関数計算されたプロパティ – YMC

+0

新しい例で私の次の投稿を参照してください:) –

関連する問題