如何在弹出窗口中隐藏文本属性'It’传单上没有填写

How to hide a text property in popup when it's not filled in Leaflet?

本文关键字:It 窗口 属性 文本 隐藏      更新时间:2023-09-26

我有geoJson层:

var test_layer = {
    "type": "FeatureCollection",
    "crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } },                                                                         
    "features": [{ 
        "type": "Feature", 
        "properties": { 
            "name": "Name 1",
            "description": "Desc 1", 
        "geometry": { 
        "type": "Point", 
        "coordinates": [ 
        72.6, 44.3]
        }
        }]
    }

和弹出功能:

onEachFeature: function (feature, layer) {
        var popupContent = "<div class=popup><b>Object's name: </b>" + feature.properties.name + "<br /><b>Object's description: </b>" + feature.properties.description</p>";
        layer.bindPopup(popupContent);
            }

并不是我所有的物品都有描述。如果我点击一个没有描述的点,在弹出窗口中我可以看到:

Description: undefined

当值为空或被删除时,我应该更改什么以使描述的字段隐藏在弹出窗口中?

试试这个:

 onEachFeature: function (feature, layer) {    
      var popupContent = "<div class=popup><b>Object's name: </b>" + feature.properties.name;
      if(typeof(feature.properties.description) !== 'undefined'){
          popupContent += "<br /><b>Object's description: </b>" + feature.properties.description+"</p>"
      }
        layer.bindPopup(popupContent);
      }