Selezione di modelli creati dinamici all'interno di una raccolta
-
12-12-2019 - |
Domanda
Ho un set di ingressi "Nome persona" con la classe person
che sto provando a fare quanto segue: Ogni volta che una tastiera viene registrata nell'input, afferra che l'attributo dati-hash di input, e se non lo èGià un'istanza di persona con quel hash nella gente della collezione, aggiungi un modello.Altrimenti aggiorna il modello in cui hash è partita.
$('.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
});
}
});
.
Invece di usare var person = new Person
Aggiungendo questi modelli alla raccolta utilizzando il metodo add
di Backbone.
Quindi ora ho un numero di elementi quando chiamo people.models
ma non riesco a capire come selezionarli.Normalmente avresti detto person.get('attribute')
ma non sono sicuro di come selezionare il modello se non ha nome var
.Cosa potrei inserire il codice invece di //update name value where hash matches
?
Soluzione
CheckMe dovrebbe essere una serie di modelli che stai tentando di aggiornare.Iterano attraverso di loro e utilizzare il metodo impostato:
$('.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
});
}
});
.