JsTree:如何将root的父级作为#传递?

时间:2019-04-17 21:42:29

标签: json nested set jstree

我为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路由,但又得到了无尽的旋转轮,并带有相同的错误消息。

0 个答案:

没有答案