0

私は次のことをしようとしているクラスを持つ「人名」入力のセットを持ってpersonいます: キーアップが入力に記録されるたびに、その入力のデータハッシュ属性を取得し、まだインスタンスがない場合コレクション内のそのハッシュを持つ人 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 PersonBackbone の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 に答える