2012-10-01 2 views
0

다음과 같이하려고하는 person 클래스의 "Person name"입력 집합이 있습니다. 입력에 키 입력이 기록 될 때마다 해당 입력 데이터를 가져옵니다. 해시 속성을 사용하고 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를 사용하는 나는 백본의 add 방법을 사용하여 컬렉션에 이러한 모델을 추가 해요.

이제는 people.models으로 전화 할 때 여러 가지 요소가 있지만 선택할 방법을 알 수 없습니다. 일반적으로 person.get('attribute')이라고 말하고 싶지만 var 이름이없는 모델을 선택하는 방법을 잘 모르겠습니다. //update name value where hash matches 대신 코드에 무엇을 넣을 수 있습니까?

답변

1

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 
    }); 
} 
}); 
+0

감사합니다.이 방법이 저에게 효과적이었습니다. –