jstree检查ajax调用是否返回数据

时间:2016-09-01 14:31:09

标签: jquery ajax jstree

我正在使用jstree 3.2.1构建应用程序

我的树是使用像这样的ajax请求呈现的:

$("#jstree").jstree({
    "core" : 
    {
      'data' : 
      { 
        type: "POST",
        url : '/ajax.php',
        dataType : 'json'
      }
    },
    "plugins" : [ "search", "json_data" ]
});

脚本ajax.php返回一个json编码数组,这样可以很好地填充树。

但是如果没有ajax.php(例如一个空数组)返回的数据,我该如何检查并适当处理它,例如在#jstree中添加一条消息告诉用户那里没有数据?

ajax语法对我来说很奇怪,但上面的代码实际上是通过ajax获取数据。它看起来很奇怪,因为没有done()或等效的可以在普通的jquery中使用,你可以在那里检查返回的内容。

1 个答案:

答案 0 :(得分:1)

为了给自己灵活性,我创建了自己的ajax调用并将JSON数据放入变量中,然后将此变量传递给JSTree初始化。所以,你可以这样做:

var jsTreejsonData = $.ajax({
    // Your Ajax here
});

if (jsTreejsonData)
{
    var jsTreeConfig = { 
        core: { 'data': jsTreejsonData },
        plugins: ['search']
    }

    $("#jstree").jstree(jsTreeConfig);
}
else
{
    //Blank response handling goes here
}