2

我正在使用从 naturalearthdata 中提取的 geojson,如下所示: 在此处输入图像描述

我想要的只是捕获每个功能的名称,以便在网格中显示它们(实时搜索网格..顺便说一句,它对 2000 个名称有效吗?)但我无法使用 root 属性访问所有名称。我试图循环使用所有功能

Ext.define('myApp.store.Places', {
    extend: 'Ext.data.Store',
    alias: 'store.places',
    requires : ['myApp.model.PlacesModel',
                'myApp.view.main.MainModel'],
    id: 'Places',
    model: 'myApp.model.PlacesModel',
    autoLoad: true,
    proxy: {
        type: 'ajax',
        url : '/resources/data/coord.json',
        reader: {
            type: 'json',
            transform: {
                fn: function(data) {
                    for(var i = 0; i < data.features.length -1; i++){
                        names_places.push(data.features[i].properties.NAME);
                    }
                    debugger;
                    return names_places;
                },
                scope: this
            }
        }
    }
});

但是调试器向我发送了我不明白的结果: 在此处输入图像描述

特别是当数组看起来不错时: 在此处输入图像描述

什么是只捕获 NAME 的好方法?回报是否必须查看 json?

4

1 回答 1

2

您可以在模型定义中使用数组mappingfields的属性将 json 中的正确属性映射到字段。

您将设置rootProperty为。featuresreader

然后在你的fields数组中类似于这个

fields: [
    { name: 'myCustomField', mapping: 'properties.NAME' }
]
于 2015-10-28T18:26:21.517 回答