В данный момент я пишу функцию поиска для своего приложения Backbone. Идея состоит в том, что пользователь может ввести строку, а приложение будет искать и возвращать любые совпадающие модели, в которых строка появляется в любом из своих атрибутов. Пока у меня есть следующее,
функция просмотра запускается по клавише,
this.results = this.collection.search(letters);
Это запускает следующий код, расположенный в коллекции,
search: function( filterValue ) {
filterValue = filterValue.toLowerCase();
var filterThroughValue = function(data) {
return _.some(_.values(data.toJSON()), function(value) {
console.log(value);
if(value != undefined) {
value = (!isNaN(value) ? value.toString() : value);
return value.toLowerCase().indexOf(filterValue) >= 0;
}
});
};
return App.Collections.filterCollection = this.filter(filterThroughValue);
}
Однако при этом я получаю следующую ошибку:
Uncaught TypeError: undefined не является функцией
эта ошибка отображается как строка return value.toLowerCase().indexOf(filterValue) >= 0;
, и эта ошибка возвращается независимо от того, использую ли я строку, которая, как я знаю, существует в модели коллекции.
Есть ли исправление для этого или лучший способ поиска и возврата только моделей, в которых есть модели, содержащие строку поиска?