在集合中选择动态创建的模型
-
12-12-2019 - |
题
我有一组与类的"人名"输入 person
我试图用下面的方法来做:每次在输入中记录keyup时,获取该输入的data-hash属性,如果集合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
?
解决方案
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
});
}
});
不隶属于 StackOverflow