문제

Class person 클래스가있는 "사람 이름"입력을 가지고 있습니다. Keyup이 입력에 기록되면서 입력이 입력 된 경우, 입력의 data-hash 속성을 잡는 경우, 그렇지 않은 경우이미 컬렉션 사람들에게 해시를 가진 사람의 인스턴스가 모델을 추가합니다.그렇지 않으면 해시가 일치하는 모델을 업데이트하십시오.

$('.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를 사용하는 대신 백본의 add 메소드를 사용하여 컬렉션 에이 모델을 추가합니다.

이제는 people.models를 호출 할 때 여러 가지 요소가 있지만 선택하는 방법을 알아낼 수는 없습니다.일반적으로 person.get('attribute')를 말할 것입니다. 그러나 var 이름이없는 경우 모델을 선택하는 방법을 모르겠습니다.//update name value where hash matches 대신 코드에 넣을 수 있습니까?

도움이 되었습니까?

해결책

Checkme는 업데이트하려는 모델의 배열이어야합니다.그들을 반복하고 세트 방법을 사용하십시오.

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