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?

È stato utile?

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
  });
}
});
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top