私はこの件に関して同様の質問がたくさんあることを知っていますが、私は自分自身でこの問題を解決しようとしていて、それはできませんでした。ノックアウトのリストをフィルタリングする
私がやっていることは、テキストボックスでリストをフィルタリングすることです。以下のコード:
HTML:
<!DOCTYPE html>
<html>
<head>
<title>Magic Towns</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<link rel="stylesheet" href="css/styles.css">
<style>
html,
body {
font-family: Arial, sans-serif;
height: 100%;
margin: 0;
padding: 0;
}
#map {
height: 100%;
}
</style>
</head>
<body>
<div id="map"></div>
<div class="menuContainer">
<span class="center" style="font-size:30px;cursor:pointer" onclick="openNav()">☰</span>
<div id="mySidenav" class="sidenav">
<a href="javascript:void(0)" class="closebtn" onclick="closeNav()">×</a>
<a href="#"><h1>Locations:</h1></a>
<form role="search">
<input type="text" data-bind="value: query, valueUpdate: 'keyup'" placeholder="Search...">
</form>
<div data-bind='with currentPlace' >
<div data-bind='foreach: placeList'>
<p href="#" class="whiteFont" data-bind='text: city, click: closeNav'></p>
</div>
</div>
</div>
</div>
<script src='js/sidebar.js'></script>
<script src="js/jquery-3.2.1.min.js"></script>
<script src="js/knockout-3.4.2.js"></script>
<script src="js/data.js"></script>
<script src="js/app3.js"></script>
</body>
</html>
のjavascript:
var Place = function(data) {
this.city = ko.observable(data.city);
this.lat = ko.observable(data.lat);
this.lng = ko.observable(data.lng);
};
var ViewModel = function() {
var self = this;
self.placeList = ko.observableArray([]);
self.query = ko.observable(''),
initialPlaces.forEach(function(placeLocation) {
self.placeList.push(new Place(placeLocation));
});
self.currentPlace = ko.observable(this.placeList()[0]);
};
ko.applyBindings(ViewModel);
データ:
var initialPlaces = [
{"city":"R","lat":22,"lng":-102},
{"city":"T","lat":23,"lng":-110},
{"city":"P","lat":18,"lng":-92},
{"city":"F","lat":25,"lng":-102},
];
私はすでに、これはLink1Link2と別のものが、何をリンクしてみてください... I Javascriptとノックアウトのノブ(2週間以内)。
例を試すたびに、私のリストは空白になり、何も表示されません。
この問題の解決方法に関する情報はどこにありますか、ご意見ありがとうございましたか教えてください。
ありがとうございます。
あなたは男性です!私にノックアウトの良いチュートリアルを紹介してもらえますか? –
@AlbertoRocha私はビデオチュートリアルは知らないが、youtubeで検索することができます。 Knockoutの[documentation](http://knockoutjs.com/documentation/introduction.html)は非常に簡単で分かりやすいです。左側に、バインディングのリストが表示されます。あなたは1つ1つずつ行くことができます。 Jsfiddle/Stack Overflowを検索することもできます。たとえば、googleで 'knockout foreach binding site:jsfiddle.net'を検索すると、数百回のフェイドルが発生します(同じようにサイトをstackoverflow.comに置き換えると同じです)。 – adiga
@AlbertoRocha http://www.knockmeout.net/は、シンプルで高度なトピックの非常に良いブログです。 [ここでは、役に立つバイリンガルのリスト](http://www.knockmeout.net/2011/08/all-of-knockoutjscom-live-samples-in.html)のブログから – adiga