Я пытаюсь выполнить поиск по имени в наблюдаемом массиве. Вот мой код:Поиск нокаута в наблюдаемом массиве
<input class="form-control" data-bind="value: Query, valueUpdate: 'keyup'" autocomplete="off">
И мой код в ViewModel
viewModel.Query = ko.observable('');
viewModel.search = function(value) {
viewModel.TestList.removeAll();
for (var x in viewModel.TestList) {
if (viewModel.TestList[x].Name.toLowerCase().indexOf(value.toLowerCase()) >= 0) {
viewModel.TestList.push(viewModel.TestList[x]);
}
}
}
viewModel.Query.subscribe(viewModel.search);
Во-первых: Я хотел бы искать по имени строки. Два: Есть ли какие-либо другие решения, чтобы не удалить все элементы из представления? Я имею в виду, что когда строка запроса пуста, должен быть весь список еще раз.
Теперь у меня есть сообщение об ошибке:
TypeError: viewModel.TestList[x].Name is undefined
вам нужно 'if (value) removeAll()' guard – dandavis
, это должно работать, попробуйте этот 'viewModel.TestList() [x] .Name' –
попробуйте это, что прекрасно работает http://jsfiddle.net/LkqTU/ 23731 /. cheers –