Backbone collection.where错误

时间:2016-01-07 18:12:02

标签: backbone.js coffeescript underscore.js

我认为我正在做一些愚蠢而且明显错误的事情,但我感到困惑。使用CoffeeScript和marionette骨干,我想在我的集合上创建一个方法,将大多数模型设置为选中,然后将所有选中的模型设置为未选中。我假设

deselectAll: ->
  @where({selected: true})

会给我选择的模型,我可以迭代(对于选定的模型)并设置模型。但我无法让@where工作,而是得到:

Uncaught TypeError: _.matches is not a function
来自主干的

where: function(attrs, first) {
  var matches = _.matches(attrs);
  return this[first ? 'find' : 'filter'](function(model) {
    return matches(model.attributes);
  });
},

更新

目前正在使用过滤器:

@filter (model) ->
  model.get 'selected'

它似乎比现在更复杂,但也许不是?

1 个答案:

答案 0 :(得分:2)

backbone <= 1.2.1underscore >= 1.8.0不兼容。将您的backbone升级到1.2.2或1.2.3。

underscore 1.8.0函数中matches已弃用并重命名为matcher。见underscore changelog