1 votos

ocultar atributo con valor nulo mediante leaflet

http://jsbin.com/hinekaj/edit?html,output

este es un enlace a un mapa estoy trabajando en. Sería genial si alguien pudiera ayudarme a ocultar los atributos que tienen "null" como valor. Soy consciente de que tengo que utilizar el comando IF, pero he estado luchando con él.

        onEachFeature: function (feature, layer) {
          layer.bindPopup('<strong>Address: </strong>'+ feature.properties.address 
                          + '<p></p>Sample 1: '+ feature.properties.sample_1 + ' Pb'
                          + "<p></p>Sample 1: "+ feature.properties.sample_1 + ' Pb'
                        + " , Sample 2: "+ feature.properties.sample_2 + ' Pb'
                         + "<p></p>Sample 3: "+ feature.properties.sample_3 + ' Pb'
                         + " , Sample 4: "+ feature.properties.sample_4 + ' Pb'
                         + '<p></p>Sample 5: '+ feature.properties.sample_5 + ' Pb'
                         + ' , Sample 6: '+ feature.properties.sample_6 + ' Pb'
                         + '<p></p>Sample 7: '+ feature.properties.sample_7 + ' Pb'
                         + ' , Sample 8: '+ feature.properties.sample_8 + ' Pb'
                         + '<p></p>Sample 9: '+ feature.properties.sample_9 + ' Pb'
                         + ' , Sample 10: '+ feature.properties.sample_10 + ' Pb'
                         + '<p></p>Sample 11: '+ feature.properties.sample_11 + ' Pb'
                         + ' , Sample 12: '+ feature.properties.sample_12 + ' Pb'
                         + '<p></p>Sample 13: '+ feature.properties.sample_13 + ' Pb'
                         + ' , Sample 14: '+ feature.properties.sample_14 + ' Pb'

         ); 
        },

1voto

IvanSanchez Puntos 491

Esta es una pregunta de programación más que de SIG, pero en fin:

Existen varios enfoques del problema. Este utiliza un bucle simple y una tabla de búsqueda para las etiquetas de las propiedades:

var propertyLabels = {
    address: '<strong>Address</strong>',
    sample_1: 'Sample 1',
    sample_2: 'Sample 2',
    sample_3: 'Sample 3',
    sample_4: 'Sample 4',
    sample_5: 'Sample 5',
    sample_6: 'Sample 6',
    sample_7: 'Sample 7',
    sample_8: 'Sample 8',
    sample_9: 'Sample 9',
    sample_10: 'Sample 10',
    sample_11: 'Sample 11',
    sample_12: 'Sample 12',
    sample_13: 'Sample 13',
    sample_14: 'Sample 14'
}

onEachFeature: function (feature, layer) {

    var text = '';

    for (var property in feature.properties) {
        var value = feature.properties[value];
        if (value !== null) {
            text += '<p>' + propertyLabels[property] + ': ' + value + '</p>';
        }
    }
    layer.bindPopup(text);
}

Tenga en cuenta también que el if (value !== null) sólo funciona si el valor recibido por JavaScript es realmente null - incluso si su RDBS contiene valores NULL, podrían ser convertidos a otra cosa por el camino, dependiendo de los protocolos utilizados.

1voto

eskhool Puntos 31

Podría añadir esta pequeña prueba dentro de ( condition ? expr1 : expr2)

onEachFeature: function (feature, layer) {
      layer.bindPopup('<strong>Address: </strong>'+ feature.properties.address 
                      + (feature.properties.sample_1 ? '<p></p>Sample 1: '+ feature.properties.sample_1 + ' Pb' : '')
     ); 
    },

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X