2016-01-07 62 views
1

我假設我正在做一些愚蠢的事情,顯然是錯誤的,但我很困惑。使用CoffeeScript和牽線木偶,我想在我的收藏集上創建一個方法,將大多數模型設置爲選中狀態,然後將所有選中的方式設置爲未選定狀態。我假設骨幹collection.where錯誤

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); 
    }); 
}, 

UPDATE

這是目前帶過濾器的工作:

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

看起來似乎比哪裏更復雜,但也許不是T'

回答

2

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

underscore 1.8.0功能matches已棄用並重命名爲matcher。見underscore changelog

+0

啊!很好的發現。萬分感謝。知道這是一件非常簡單的事情......只要我的代表足夠高,就可以爲鏈接+1 –