可以在Angular中的ng-repeat循环中将geojson显示为表格吗?

时间:2014-12-29 11:53:09

标签: json angularjs leaflet geojson

所以我已经用搜索过滤器和分页创建了表格。 现在我想让它与地图互动。 问题是我试图以错误的方式访问geojson,所以也许有人可以提供帮助。

我的geojson:

{
    "type": "FeatureCollection",
    "crs": {
        "type": "name",
        "properties": {
            "name": "urn:ogc:def:crs:OGC:1.3:CRS84"
        }
    },

    "features": [{
            "type": "Feature",
            "properties": {
                "name": "Berlin",
                "country": "Germany"
            },
            "geometry": {
                "type": "Point",
                "coordinates": [28.410585, -11.293361]
            }
        }, .......

    ]
}

检索它的服务:

var AppMapDirectory = angular.module('DirectoryAppMap', ['ngResource']);

AppMapDirectory.factory("Directory", function($resource) {
   return $resource("/result.json", {}, {
       get: {
           method: "GET",
           cache: true
       }
   });
});

将其置于范围内的控制器:

AppMapDirectory.controller("DirectoryMapList", function($scope, Directory, $filter) {
   Directory.query(function(data) {
      $scope.list = data.features;

   });

观点:

<tr ng-repeat="hf in list">
<td>{{ hf.properties.name }}</td>
<td>{{ hf.properties.category }}</td>

</tr>

<tr ng-repeat="feature in list">
<td>{{ feature.properties.name }}</td>
<td>{{ feature.properties.category }}</td>

</tr>

我在stackoverflow上看到有人在输入这样的内容:

$scope.list = data.features[];

但在我的情况下,json根本没有加载

Mayby sb会说我应该使用json而不是geojson,但我的主要观点是使地图和表格互动,以便在搜索工作时两者都会改变。

或者可以使用来自同一来源的json数据和geojson吗?

我计划使用带角度的传单指令,似乎很容易使用geojson作为地图,但如何使用geojson表?有可能吗?

1 个答案:

答案 0 :(得分:1)

是的,geojson只是json的另一个案例,它会正常工作。

leaflet directive之类的指令为您完成所有艰苦的工作,并允许您在地图上轻松显示geojson。

有关示例,请参阅https://github.com/tombatossals/angular-leaflet-directive/blob/master/examples/geojson-example.html。你甚至不需要ng-repeat。

我在目录服务中看到一些奇怪的东西。您在服务中定义get方法,但在控制器中调用query方法。默认情况下,query方法需要返回一个数组,并在遇到作为对象的geojson数据时抛出异常。

当我替换

Directory.query(function(data) 

Directory.get(function(data)

表格填写正确。