0

我有一组“人名”输入,其中person包含我正在尝试执行以下操作的类:每次在输入中记录一个 keyup 时,获取该输入的 data-hash 属性,如果还没有一个实例在 People 集合中具有该哈希的人,添加一个模型。否则只需更新哈希匹配的模型。

$('.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

4

1 回答 1

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
  });
}
});
于 2012-10-01T21:22:58.297 回答