我正在使用骨干网和 marionette.js 构建一个应用程序。我计划使用集合视图来呈现一些项目,然后允许它们被过滤、排序和分组。
我想知道是否有任何好的设计理念可以以分组方式实际附加 html。我有一些想法,但我想知道是否有人可能会对哪个更好的设计提出意见。
我的第一个想法是更改集合视图上的 appendHtml 方法,如果启用了分组,我可以让 appendHtml 函数查找或创建子组的 bin 并将子视图放入其中。
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);
}
我的第二个想法是先将集合分成几组,然后可能会渲染多个视图……这个看起来可能工作量更大,但就代码结构而言也可能更好一些。
任何能引起意见的建议或想法都会很棒!
谢谢