【发布时间】:2017-09-27 16:16:28
【问题描述】:
我正在关注guide 在我的 Laravel 5.5 应用程序中使用 Ajax 设置具有延迟加载的 JsTree。
这是我的控制器:https://gist.github.com/aaronr0207/7fa0a38f40bfd2f728a15d655254f82d
我的观点: https://gist.github.com/aaronr0207/f87720263e3d6026b04b00c08bae5cb2
我的 JsTree 类和我没有做任何改变的完全一样。
实际上我在 chrome 的控制台上收到以下错误:
d9973d3e-1476-4453-a013-9e9c8430bcba:1 Uncaught TypeError: Cannot read property 'children' of undefined
但是当我转储响应以对其进行调试时(在 TreeViewController 数据方法的末尾):
dd(response()->json($tree->build()));
有效...
我的回复看起来像这样(当我死掉它时):
有什么想法吗?谢谢
EDIT1:如果我返回一个简单的json_encode($tree->build),则没有错误,但它显示一棵空树......并且响应如下所示:
EDIT2:知道了!但是现在有一个新问题......我所做的只是用回调更改 url 字符串:
$('#jstree').jstree({
'core': {
'data': {
'url': function (node) {
return '{!! route('tree.data') !!}' ;
},
'data': function (node) {
console.log(node);
return {'id': node.id};
}
}
}
});
但是现在当我获取下一级目录时,如果它们里面有另一个目录,它会失败而没有错误:
Test1内容如下:
如果我删除 test1/test2 文件夹,它会显示:
当我删除 txt 文件时也一样...现在发生了什么?也许这是一个新问题,所以我会发布我对主要问题的解决方案,我会接受它。
【问题讨论】:
-
当您手动调用 api 并将
id参数设置为uploads/general/test1时,您会得到什么响应?
标签: javascript php laravel jstree