Skip to content

Instantly share code, notes, and snippets.

@brumm
Last active August 29, 2015 13:57
Show Gist options
  • Save brumm/9688553 to your computer and use it in GitHub Desktop.
Save brumm/9688553 to your computer and use it in GitHub Desktop.
class FilterCollection extends Backbone.Collection
set: (models, options) ->
models = if _.isArray models
models
else
[models]
[models, filtered]= _.partition models, @filter
super(models, _.extend({merge: false}, options, {add: true, remove: false }))
super(filtered, _.extend({merge: false}, options, {add: true, remove: false, silent: true}))
each: (args...) ->
models = if _.isFunction @filter
_.filter @models, @filter
else
@models
args.unshift models
_.each.apply _, args
filter: -> true
setFilter: (filter) ->
@filter = filter
@trigger "reset"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment