Marionette.js CollectionView, отображать только определенные модели

Я рефакторинг моего приложения Backbone.js для использования Marionette.js, и я пытаюсь обернуть голову вокругCollectionView.

Предположим, у меня есть несколькоItemViewс модельюCow:

// Declare my models.
var Cow = Backbone.Model.extend({});
var Cows = Backbone.Collection.extend({
  model: Cow
});

// Make my views
var GrassPatch = Marionette.ItemView.extend({
  tagName:  'div',
  template: "<section class='grass'>{{name}}</section>",
})

var Pasture = Marionette.CollectionView.extend({});

// Instantiate the CollectionView,
var blissLand = new Pasture({
  itemView: GrassPatch;
});

// Now, add models to the collection.
Cows.add({
  name: 'Bessie',
  hasSpots: true
});

Cows.add({
  name: 'Frank',
  hasSpots: false
});

Теперь вот трюк. Я хочу только коров с пятнами на моем пастбище. Как, при определении моего CollectionView (Pasture), я должен сказать ему, чтобы он обращал внимание только на те модели, чьиhasSpots ===true?

В идеале я хотел бы иметь фильтр CollectionView, который во всех событиях, но минимально, как мне рендерить только некоторые ItemViews на основе их свойств модели?

ОБНОВИТЬ

Я использовал примеры Дэвида Сулька, и это помогло найти простое решение. Вот пример реализации:

  this.collection = Backbone.filterCollection(this.collection, function(criterion){
    var len = String(criterion).length;
    var a = criterion.toLowerCase();
    return function(model){
      var b = String(model.get('name')).substr(0, len).toLowerCase();
      if (a === b) {
        return model;
      }
    };
  });

  this.collection.add({ name: 'foo' });
  this.collection.add({ name: 'foosball' });
  this.collection.add({ name: 'foo bar' });
  this.collection.add({ name: 'goats' });
  this.collection.add({ name: 'cows' });

  this.collection.filter('foo');

  // -> returns the first three models

Ответы на вопрос(4)

Ваш ответ на вопрос