컬렉션에서 동적으로 작성된 모델을 선택합니다
-
12-12-2019 - |
문제
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
});
}
});
. 제휴하지 않습니다 StackOverflow