我有一个集合,我根据这样的属性获取模型
var coll=reportWidgets.where({"is_editing":true});
我想遍历这些模型并将属性is_editing
设置为false。
我该怎么做?
答案 0 :(得分:2)
_.each(reportWidgets.where({is_editing: true}), function (reportWidget) {
reportWidget.set('is_editing', false);
});
使用类似于@nikoshr的_.invoke
替代
_.invoke(reportWidgets.where({is_editing: true}), 'set', 'is_editing', false);
答案 1 :(得分:2)
对此问题的不同看法,使用_.chain
和_.invoke
来获取乐趣,我希望,可读性
reportWidgets.chain().filter(function(m) {
return m.get('is_editing');
}).invoke('set', 'is_editing', false);
演示http://jsfiddle.net/nikoshr/PMvLC/
请注意,在该上下文中使用where
会产生意外结果,因为它可以处理模型数组,而不是集合及其代理的下划线方法。