Jquery 使用dynatree.js延迟加载,如何删除空的子节点(分支中的最后一个节点都是空的)

Jquery 使用dynatree.js延迟加载,如何删除空的子节点(分支中的最后一个节点都是空的),jquery,json,node.js,jquery-dynatree,Jquery,Json,Node.js,Jquery Dynatree,我是新的dynatree用法。除了为每个分支显示最后一个子元素为空之外,其他一切都很酷和懒散 $("#tree").dynatree({ title: "Lazy loading sample", fx: { height: "toggle", duration: 200 }, autoFocus: false, initAjax: { url: "/get_top_level_nodes", data: { mode: "fun

我是新的dynatree用法。除了为每个分支显示最后一个子元素为空之外,其他一切都很酷和懒散

$("#tree").dynatree({
    title: "Lazy loading sample",
    fx: { height: "toggle", duration: 200 },
    autoFocus: false,

    initAjax: {
        url: "/get_top_level_nodes",
        data: { mode: "funnyMode" }
    },

    onActivate: function(node) {
        $("#echoActive").text("" + node + " (" + node.getKeyPath()+ ")");
    },

    onLazyRead: function(node){
        node.appendAjax({
            url: "/get_children",
            data: { key: node.data.key,mode: "funnyMode"}
            });
    }
});
如果json结果不为null,则如下所示。它工作正常。Json:
[{“title”:“Node1”,“isLazy”:true,“key”:“BC13B21636CD6D5C”},{“title”:“Node1”,“isLazy”:true,“key”:“BC13B21636CD6D5C”}]

如果ajax结果为空
[]
,则返回为
null
。然而,我在该分支中看到一个子节点
null
。我怎样才能删除这个?如果没有子项,我不想显示
null
或任何内容

如果ajax结果为空[],则返回null


您应该返回
[]
而不是;-)

如果结果是[]数组而不是[{“title”:“Node1”,“is Lazy”:true,“key”:“BC13B21636CD6D5C”},{“title”:“Node1”,“is Lazy”:true,“key”:“BC13B21636CD6D5C”}

如果父级没有子级,则返回nil。我在控制器中使用了格式化方法,用于将子数组格式化为son格式,

mar10的答案是正确的。 下面是我用于使用延迟加载的树的代码。 如果没有要返回的子节点,我将回显一个空的JSON对象“[]”:

$res = mysql_query($req) or die(mysql_error());
$i=0;
while($cat = mysql_fetch_assoc($res)) {
  $cats[] = $cat;
  $i = 1;
}
if ($i)
  echo json_encode($cats);
else
  echo "[]";