Выбор динамически создаваемых моделей в коллекции

StackOverflow https://stackoverflow.com//questions/12679994

Вопрос

У меня есть набор входных данных «Имя человека» с классом person с которым я пытаюсь сделать следующее:каждый раз, когда во входных данных записывается клавиша, извлекайте атрибут хэша данных этого входа и, если в коллекции 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 Я добавляю эти модели в коллекцию с помощью Backbone. add метод.

Итак, теперь у меня есть несколько элементов, когда я звоню people.models но я не могу понять, как их выбрать.Обычно вы бы сказали person.get('attribute') но я не уверен, как выбрать модель, если ее нет var имя.Что я мог бы добавить в код вместо //update name value where hash matches?

Это было полезно?

Решение

checkMe должен представлять собой массив моделей, которые вы пытаетесь обновить.Переберите их и используйте метод set:

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