1

Backbone Paginator を使用しています。コレクションをフィルタリングすると、現在のページのみがフィルタリングされます。コレクション全体をフィルタリングするにはどうすればよいですか?

現在、マリオネットでフィルターボタンを扱っています。ユーザーがフィルターする値を入力すると、その値を Application オブジェクトのメンバーとして設定します。次に、コレクションに対して fetch を呼び出します。これらのアイテムはテーブルにあり、複合ビューでレンダリングされます。モデルのデータ フィールドがフィルター値の条件と一致しない場合は、フィルター メソッドをオーバーライドして 0 を返します。

filter: function(child, index, collection) {
  var name = child.get('full_name').toLowerCase();
  if (App.nameFilter.length) {
    if (name.indexOf(App.nameFilter.toLowerCase()) == -1) {
      return 0;
    }
  }
  return 1;
}

子モデルが現在のページにない場合は、取得されません。または、これを行うより良い方法はありますか?

4

1 に答える 1

0

問題の解決策が見つかるかどうかはわかりませんが、マリオネットでのフィルタリングは Paginator によって管理されるコレクションには影響しません。これがページネーションのバグの原因です。

私も同様のものに取り組んでおり、唯一の方法はコレクションで直接フィルタリングを管理することだと思います

于 2016-05-17T00:26:12.300 に答える