leaflet-angular-directive を使用して、テーブルとマップにオブジェクトを正常に表示しますが、検索入力によるフィルタリングはテーブル内の geojson オブジェクトにのみ影響します。
私の目的: 検索入力によるフィルタリングを、テーブルとマップの geojson オブジェクトに影響を与えるようにします。
私のモジュール
var AppMapDirectory = angular.module('DirectoryAppMap', ['ngResource', 'leaflet- directive']);
私の工場
AppMapDirectory.factory("Directory", function($resource) {
return $resource("json/result.json", {}, {
get: {
method: "GET",
cache: true
}
});
});
私のコントローラー
AppMapDirectory.controller("DirectoryMapList", function($scope, Directory) {
Directory.get(function(data) {
$scope.hf_directory = data.features;
function onEachFeature(feature, layer) {
layer.bindPopup("<b>Wardname:</b> " + feature.properties.name +
"<br><b>Category:" + feature.properties.category + "");
}
angular.extend($scope, {
geojson: {
data: $scope.hf_directory,
onEachFeature: onEachFeature
}
});
});
angular.extend($scope, {
defaults: {
tileLayer: "https://dnv9my2eseobd.cloudfront.net/v3/foursquare.map-ikj05elx/{z}/{x}/{y}.png",
maxZoom: 14,
minZoom: 3
},
center: {
lat: 8.1238,
lng: 11.8777,
zoom: 2
}
});
});
マイ テンプレート
<div ng-app="DirectoryAppMap" ng-controller="DirectoryMapList">
<ul>
<li><input ng-model="search.properties.name" placeholder="Name" ></li>
<li><input ng-model="search.properties.category" placeholder="Category"></li>
</ul>
<table>
<thead>
<tr>
<th>Name</th>
<th>Category</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="hf in hf_directory| filter:search">
<td>{{ hf.properties.name }}</td>
<td>{{ hf.properties.category }}</td>
</tr>
</tbody>
</table>
<div leaflet id="map" center="center" defaults="defaults" geojson="geojson">
</div>
</div>
多分誰かが私に正しい方向を示すことができるので、私が間違っていることを知っているので、検索をさまざまな方法でリーフレットにバインドしようとしましたが、実際にはテンプレート側で行うべきではないと思いますか? しかし、フィルターのような geojson のオプションでは? これは今行うべき正しいことですか?
ng-repeat ディレクティブを使用しましたが、何千ものマップがありました。ng-repeat を使用してもマップが 1 つしかない可能性がありますか?