私は約2ヶ月間ノックアウトを学んでいます。私は、テキスト入力によってフィルタリングされるリストを作成しようとしています。このフィルタは同時に地図上にマーカーを隠す/表示します。私は問題がノックアウト側かhtmlバインディング側にあるかどうかは分かりません。あなたは私を正しい方向に向けることができますか?これが問題とコードのサンプルコードです:knockoutjsを使ってテキストボックスで "keydown"の後にフィルタリングされたリストを表示する
self.filteredPlaces = ko.computed(function() {
var filter = self.query().toLowerCase();
if (!filter) {
ko.utils.arrayForEach(self.markers(), function (item) {
item.setVisible(true);
//I used the console.log to verify that the info was being fetch
console.log(item.city);
});
return self.markers();
} else {
return ko.utils.arrayFilter(self.markers(), function(item) {
// set all markers visible (false)
var result = (item.city().toLowerCase().search(filter) >= 0);
item.setVisible(result);
return result;
});
}
});
はまた、私はあなたのビューにノックアウトオブジェクトをバインドするinitMap
でko.applyBindings(viewModel)
を呼び出す必要がフィドルセットアップhere
あなたはビューにノックアウトオブジェクトをバインドしていません。これを行うには、あなたのinitMap関数で "ko.applybindings(viewmodel)"を使う必要があります。これは都市バインディングが現れるようにします。次に、あなたのquery()でsubscribeを呼び出す必要があります。 –
どうすればいいですか? –
よろしくお願いします。最初に私がinitMapとko.applyBindingsに関してあなたのリストを表示するように提案したことをやってみましょう。あなたは今リストを見ますか? –