Backbone.js 更新模型属性

Backbone.js 更新模型属性,backbone.js,Backbone.js,我在练习瑜伽。我有一个由10个模型组成的集合。在一个模型中,我想更改其中两个属性。我正在使用设备本地存储。我尝试了以下代码(这只是较大脚本的一部分): 我认为这种方法效率低。随着集合长度的增加会发生什么。我相信还有比这更好的方法 您可以使用,其中: 直接返回集合中与传递的属性匹配的第一个模型 这可以减少运行的迭代次数 您还可以使用来避免执行额外的“设置” //找到匹配模型时停止 var physicsModel=this.collection.findWhere({subject:'Physic

我在练习瑜伽。我有一个由10个模型组成的集合。在一个模型中,我想更改其中两个属性。我正在使用设备本地存储。我尝试了以下代码(这只是较大脚本的一部分):

我认为这种方法效率低。随着集合长度的增加会发生什么。我相信还有比这更好的方法

您可以使用,其中:

直接返回集合中与传递的属性匹配的第一个模型

这可以减少运行的迭代次数

您还可以使用来避免执行额外的“设置”

//找到匹配模型时停止
var physicsModel=this.collection.findWhere({subject:'Physics'});
//可能需要执行一些空检查。。。
//在发布前执行设置,触发正确的“更改”事件
physicsModel.save({title:'hydrodynamics'});

注意:更有效的方法是避免在集合中查找。例如,如果此模型应通过用户的某些操作“保存”,则可以利用模型的视图来访问正确的模型(即
this.model.save()
)。这当然是依赖于实现的。

为什么你认为这是低效的?你有什么更好的办法?你是如何分类收集的?您可以通过应用程序UI直接访问更改的模型吗?如果不是,为什么?请在您的问题中添加更多细节。我成功地实施了您的建议。这比我的方法好
this.collection.forEach(function(user) {
                    if (user.get('subject') === 'Physics') {
                        user.set({'title': 'hdrodynamics'});
                        user.save();
                        console.log(JSON.stringify(user));
                        return;
                    }
                });