0
我需要一些帮助在这里:https://jsfiddle.net/vhaurnpw/淘汰赛观察到的数组不会重新渲染我的名单
我想做一个简单的列表,这是在顶部和更新自身的输入过滤..
JS /基因敲除:
var viewModel = {
query: ko.observable(''),
places: ko.observable(data),
search: function(value) {
viewModel.places = [];
console.log(value)
for (var i = 0; i < data.length; i++) {
if(data[i].name.toLowerCase().indexOf(value.toLowerCase()) >= 0) {
viewModel.places.push(data[i]);
}
console.log(viewModel.places);
}
}
};
viewModel.query.subscribe(viewModel.search);
ko.applyBindings(viewModel);
HTML:
<form acion="#" data-bind="submit: search">
<input placeholder="Search" type="search" name="q" data-bind="value: query, valueUpdate: 'keyup'" autocomplete="off">
</form>
<ul data-bind="foreach: places">
<li>
<span data-bind="text: name"></span>
</li>
</ul>
将显示列表,但当您键入内容时,它不会显示结果。
相反,当你查找控制台,你会看到console.log,它更新得很好!
那么我如何刷新我的HTML? :(
通过调用它们可观测值。这行'viewModel.places = [];'需要'viewModel.places([])''。 – user3297291
谢谢!那个和可观察的阵列得到它的工作! – Shouldz