バックボーンとmarionette.jsを使用してアプリケーションを構築しています。コレクションビューを使用していくつかのアイテムを表示し、それらをフィルタリング、並べ替え、グループ化できるようにすることを計画しています。
グループ化された方法で実際にhtmlを追加するための良いデザインのアイデアがあるかどうか疑問に思いました。いくつかのアイデアがありますが、どちらがより良いデザインになるかについて誰かが意見を述べているのではないかと思っていました。
私の最初のアイデアは、コレクションビューのappendHtmlメソッドを変更することです。グループ化が有効になっている場合は、appendHtml関数で子グループのビンを検索または作成し、その中に子ビューを配置できます。
appendHtml: function(collectionView, itemView, index){
var $container = this.getItemViewContainer(collectionView);
// get group from model
var groupName = itemView.model.get("group");
// try to find group in child container
var groupContainer = $container.find("." + groupName);
if(groupContainer.length === 0){
// create group container
var groupContainer = $('<div class="' + groupName + '">')
$container.append(groupContainer);
}
// Append the childview to the group
groupContainer.append(itemView);
}
私の2番目のアイデアは、最初にコレクションをグループに分割してから、複数のビューをレンダリングすることです...これは、より手間がかかるように見えますが、コード構造に関する限り、少し優れている可能性もあります。
コメントを引き出す提案や考えは素晴らしいでしょう!
ありがとう