私のリストに再レンダリングされません:..私はトップと更新自体の入力で絞込み単純なリストを、やりたい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
ありがとう!それとobservableArrayが動作するようになった! – Shouldz