Buenos días a todos, tengo algunos problemas para insertar un valor en una matriz vacía. Actualmente, quiero enviar un valor (subLayerLength); solo hay un valor que cumple esta condición de (> 0) que quiero insertar en la matriz vacía (subLayersArray) y luego usar el valor que es (> 0) en la función destroyLayerTrNode eliminadoLayerNode2. Sin embargo, cada vez que ejecuto esto, la matriz se restablece a una matriz vacía. ¿Alguien puede decirme cómo solucionar esto? Gracias:)
var subLayerLength = layerInfo.newSubLayers.length
let subLayersArray = []
if(subLayerLength > 0){
subLayersArray.push(subLayerLength)}
this.destroyLayerTrNode(layerInfo, subLayersArray)
destroyLayerTrNode: function(layerInfo, subLayersArray) {
var lc = layerInfo.layerObject.url.toLowerCase();
var parentLayerId= layerInfo.id
var layerId = parentLayerId.split("_")[0]
var newSubId= (parseInt(layerInfo.subId))
if (lc.indexOf("/mapserver/") > 0 && lc.includes("/nautical/")){
for(let i = 1; i< newSubId; i++ ){
var removedLayerNode = query("[class~='layer-tr-node-" + layerId + "_" + i + "']", this.domNode)[0];
var removedLayerContentNode = query("[layercontenttrnodeid='" + layerId + "_" + i + "']", this.domNode)[0];
var removedLayerNode2 = query("[class~='layer-tr-node-" + layerId + "_" + **subArrayLayer[0]** + "']", this.domNode)[0];
if(removedLayerNode) {
domConstruct.destroy(removedLayerNode)
domConstruct.destroy(removedLayerNode2)
if(removedLayerContentNode) {
domConstruct.destroy(removedLayerContentNode);
console.log("destroyed")}
}
}
}
},
Solución del problema
El problema no parece estar en su código. Empujar el valor en la matriz funciona bien.
var subLayerLength = 33;
let subLayersArray = [];
if(subLayerLength > 0){
subLayersArray.push(subLayerLength);
}
console.log(subLayersArray);
Su problema parece ser que no usa "subLayersArray" en su función "destroyLayerTrNode". Solo accede a una matriz con el nombre "subArrayLayer[0]" que no está definido en ninguna parte. Simplemente renombrándolo debería hacer el truco.
var removedLayerNode2 = query("[class~='layer-tr-node-" + layerId + "_" + **subLayersArray[0]** + "']", this.domNode)[0];
No hay comentarios:
Publicar un comentario