onEachfeatures не отображает содержимое, но [объект объекта] - PullRequest
2 голосов
/ 04 мая 2020

у меня есть следующий geo json и я хочу отобразить детали о людях на каждой функции

Ниже приведен раздел свойств моего Geo json Вывод

"properties": {"lr": "26697/751", "Registrations": {"Tenure_type": "leasehold", "persons": [{"PersonID": 7475, "name1st": "benard", "name2st": "gramps", "telephone": "02857215"}, {"PersonID": 7512, "name1st": "Jackie", "name2st": "morgan", "telephone": "0248571264"}]}}}

Вот мой код

<body>
<h1>Ownership</h1>
 <script type="text/javascript"> 
     function our_Layers (map, options){
        var datasets = new L.GeoJSON.AJAX("{% url 'owner' %}",{                
            onEachFeature: function(feature, layer){                    

                layer.bindTooltip(feature.properties.Registrations.persons.toString(), 
                {permanent:true, direction: 'right'});

            }
        });
        datasets.addTo(map); 

     }
</script>
{% leaflet_map "Owners" callback="window.our_Layers" %}
</body>

1 Ответ

1 голос
/ 04 мая 2020

Я думаю, вам нужно использовать функцию JSON .stringify () для разбора вашего объекта:

layer.bindTooltip(JSON.stringify(feature.properties.Registrations.persons), 
    {permanent:true, direction: 'right'});

Чтобы увидеть разницу между методами JSON .stringify () и .toString. Я создал следующий фрагмент кода:

var persons = [
    { "PersonID": 7475, "name1st": "benard", "name2st": "gramps", "telephone": "02857215" },
    { "PersonID": 7512, "name1st": "Jackie", "name2st": "morgan", "telephone": "0248571264" }
];

console.log(JSON.stringify(persons));
console.log(persons.toString());

Для получения дополнительной информации: https://www.w3schools.com/js/js_json_stringify.asp

...