我想将过滤器附加到angular-leaflet-directive显示的地图上,这样geojson将在表格和地图中进行过滤,我尝试了类似的东西,但是工作不正常,我疯了吗?
我的应用控制器
AppMapDirectory.controller("DirectoryMapList", function($scope, Directory, $filter, filterFilter) {
Directory.get(function(data) {
$scope.hf_directory = data.features;
angular.extend($scope, {
geojson: {
data: filterFilter($scope.hf_directory, $scope.search),
filter: $scope.filter
}
});
});
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
}
});
我的模板
<leaflet id="map" center="center" defaults="defaults" geojson="geojson"></leaflet>
我在考虑添加geojson =&#34; geojson | filter:search&#34; 但是没有解决问题?
也许有其他方法,有可能以某种方式添加ng-repeat给传单?那么我假设过滤器:搜索会起作用吗?
答案 0 :(得分:1)
您正在将$filter
和filterFilter
注入您的控制器,但您实际上并未将其中一个注入您的范围。同时,您将$scope.filter
分配给geojson声明的filter属性。这不起作用,因为未声明$scope.filter
。在使用geojson声明扩展范围之前,您必须将过滤器分配到范围:$scope.filter = filterFilter
或$scope.filter = $filter
,具体取决于您需要的范围。我不清楚,因为我看不到$filter
和filterFilter
包含的内容。
// assign filterFilter to the $scope
$scope.filter = filterFilter;
// or assign $filter to the $scope
$scope.filter = $filter;
angular.extend($scope, {
geojson: {
data: filterFilter($scope.hf_directory, $scope.search),
filter: $scope.filter
}
});