1. ホーム
  2. backbone.js

[解決済み] 初期化後のBackbone Collectionのソート

2022-02-19 08:16:55

質問

Backbone.jsを使って、Booksなどのアイテムのリストを表示しています。リストがレンダリングされた後、ユーザーがそれらをソートするためのオプションがあります。ですから、ユーザーがタイトルで並べ替え、または著者名で並べ替えをクリックすると、リストはクライアント側で自動的に並べ替えられます。

  window.Book = Backbone.Model.extend({
   defaults: {
     title: "This is the title",
     author: "Name here"
   },

Backboneアプリケーションのコンテキストで使用して、この並べ替えを達成するための最良の方法は何でしょうか。AppViewでjQuery dom sorterを使用しますか?

どのように解決するのですか?

このトピックに関するディスカッションがありますので、ご覧になってみてください。 https://github.com/documentcloud/backbone/issues/41 .

要するに、ユーザーが「Xで並べ替え」を選択したとき、できるようになるということです。

  1. を設定します。 comparator 関数は、コレクション
  2. コレクションの sort 関数(これは sort イベント)
  3. をリッスンします。 sort イベントを発生させ、アイテムを(クリアして)再描画します。

ステップ 1 & 2 を処理する別の方法として、独自のメソッドを用意し、Collection の sortBy メソッドを実行し、View がリッスンできるカスタムイベントをトリガーします。

しかし、ビューをソートし、コレクションのソート順と同期させるには、クリアと再描画が最も簡単な(そしておそらく最も速い)方法であるように思われます。