我有一组与类的"人名"输入 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
  });
}
});
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top