一連のアイテムをフィルタリングできる Web アプリケーションがあり、Web フロントエンドで backbone.js を使用しているとします。
当然のことながら、Backbone.Modelを拡張するFilterとBackbone.Collectionを拡張するSearchResultListを作成することになりました。Filter には、 searchTerm、dataFrom、dateToなどの属性があります。Filter には というメソッドもあります。を呼び出して、検索結果を更新/フィルタリングする必要があります。applyFilterFilter.applyFiltersearchResultList.fetch
問題は、バックボーン用語の属性ではなく、プロパティsearchResultListとして最適に初期化する方法です。Filter
が によって「所有」されているとは限らないため、を作成したくSearchResultListありません。Filter.initializeSearchResultListFilter
今のところ、searchResultListオブジェクトをoptiontoとして渡すことになりましFilter.initializeたが、少しぎこちなく感じます。
Filter.applyFilterを呼び出すのは良い考えだとは思えませんSearchResultList.fetch。Filterただし、呼び出されたときに何らかの方法で新しいリクエストをトリガーするメソッドが必要です。(変更イベントをリッスンすることFilterもオプションではありません。ユーザーは複数のステップでフィルター オプションを変更する必要があり、ボタン クリックでフィルターを手動で適用することを決定するためです)