我为Mike Hillyer的类别设置了一个嵌套集。我正在使用JSTree,并遵循了SO中的建议:PHP Convert a Nested Set into Data我按照建议创建了一个统一格式,但是,没有解释如何使用父项#传递Root。我的根的父级为“ null”,因此,进度轮会不断旋转,而我得到一个错误:
未捕获的TypeError:无法读取null的属性“ toString”
JSTree Docs还建议将Root父级设置为#,但是也不要解释如何做到这一点。我尝试使用AJAX方法,但是由于树和页面必须一起加载,因此无法使其有效工作。如何使JsTree工作?
这就是我所拥有的:
控制器:
public function jsTree(){ // THIS COMES OUT OF A LARAVEL MODEL.
$nodes = $this->category->orderByDepth();
return view ('categories.jsTree',compact('nodes'));
}
我的观点的底部:
var jsNodes = <?php echo json_encode($nodes); ?>
$(function () {
$('#jstree').jstree({
"core": {
"themes": {
"variant": "large"
},
data:jsNodes
},
"plugins": ["checkbox"]
});
});
});
控制台日志中的JSON示例:
0: {id: 1, text: "Root", parent: null}
1: {id: 22, text: "Materials", parent: "Root"}
2: {id: 42, text: "Roofing", parent: "Materials"}
3: {id: 48, text: "Hardware", parent: "Materials"}
4: {id: 43, text: "Services", parent: "Root"}
编辑:我再次尝试了Javascripting dot com所给出的Ajax路由,但又得到了无尽的旋转轮,并带有相同的错误消息。