根据模型属性在不同区域的CollectionView中渲染模型

时间:2019-01-29 10:45:32

标签: backbone.js marionette backbone-views

据我所知,CollectionView将遍历集合中的所有模型,并使用指定的childView呈现每个模型。

下面是我当前的CollectionView。我想基于某些模型属性在特定区域中呈现childView。有可能这样做吗?

export default CollectionView.extend({

  tagName: 'div',

  attributes: {
    class: 'filter-form'
  },

  childView(item) {
    return getFormComponentForType(item.get('type'));
  },

  childViewOptions(model, index){
    return {
      data: model,
      index
  }
},

});

function getFormComponentForType(type) {

  switch (type) {
    case 'CheckboxList':
      return Checkbox;
    case 'MultiSelect':
      return MultiSelectView;
    case 'RangeSelector':
      return RangeSelectorView;
    case 'FormGroup':
      return FormGroupView;
    default:
      return Backbone.View;
  }

}

0 个答案:

没有答案