我有一组带有类person
的“人名”输入,我正在尝试执行以下操作:每次在输入中记录一个键盘时,抓住该输入的数据哈希属性,如果在集合People中没有具有该哈希的Person实例,请添加模型。否则只需更新哈希匹配的模型。
$('.person').keyup(function(){
var myHash = $(this).attr('data-hash'),
myName = $(this).val(),
checkMe = people.where({'hash':myHash});
if ( checkMe.length > 0 ){
//update name value where hash matches
}
else {
people.add({
'name':myName,
'hash':myHash
});
}
});
而不是使用var person = new Person
我使用Backbone的add
方法将这些模型添加到集合中。
所以现在我在调用people.models
时有很多元素,但我无法弄清楚如何选择它们。通常你会说person.get('attribute')
但我不知道如果它没有var
名称,如何选择模型。我可以在代码中添加什么而不是//update name value where hash matches
?
答案 0 :(得分:1)
checkMe应该是您尝试更新的模型数组。迭代它们并使用set方法:
$('.person').keyup(function(){
var myHash = $(this).attr('data-hash'),
myName = $(this).val(),
checkMe = people.where({'hash':myHash});
if ( checkMe.length > 0 ){
_.each(checkMe, function(person){
person.set({
'name':myName,
});
});
}
else {
people.add({
'name':myName,
'hash':myHash
});
}
});