var layers = {};
//Add new layer
layer.markers = new L.Group();
layer.Name = t;
layers.layer = layer;
给出错误layers.length仍然是'undefined'。它为什么这样做?我在日志中验证了图层包含一个项目。
答案 0 :(得分:1)
layers
不是数组。如果你想把它保存为对象文字,并检查它是否为空,请尝试定义如下内容:
Object.isEmpty = function(obj) {
for (var p in obj)
if (obj.hasOwnProperty(p)) return false;
return true;
};
并使用
if (!Object.isEmpty(layers)) { ...
代替。
答案 1 :(得分:0)
您没有添加到阵列。最后一行应该是:
layers.push(layer);
答案 2 :(得分:0)
简单的问题。 图层是一个对象而非数组。
您需要做的是将图层替换为以下内容。
var layers = new Array();
并替换
中的添加图层代码layers.layer = layer;
到
layers.push(layer);