NgJsTree:使用Ajax调用填充树

时间:2016-02-17 14:50:56

标签: javascript jquery angularjs ajax jstree

我正在使用ngjstree(https://github.com/ezraroi/ngJsTree),我想用Ajax调用填充树;我查阅了文档和一些示例,但我没有找到任何有用的信息。 我知道这与jsTree类似,并检查了文档,我发现有可能以这种方式填充树:

$('#tree').jstree({
    'core' : {
        'data' : {
            'url' : function (node) {
                return node.id === '#' ?
                'ajax_roots.json' :
                'ajax_children.json';
         },
     'data' : function (node) {
         return { 'id' : node.id };
      }
    }
});

在ngjstree中,我无法以同样的方式调用我的树($('#tree').jstree),因为我有不同的结构。在特殊情况下,我有这个HTML:

<div ng-controller="treeCtrl as vm">
    <div js-tree="vm.treeConfig" ng-model="vm.treeData" tree="vm.treeInstance"></div>
</div>

我尝试在控制器中填充树,如下所示:

vm.treeData = { 
    core : { 
        html_titles : true
    },
    plugins : ["themes", "json_data", "ui"],
    json_data : {
        "ajax" : {
        "url" : myUrl,
        "data" : function (n) {
            return { 
                id : n.attr ? n.attr("id") : 0,
                node_type : n.attr ? n.attr("rel") : '',
                site_id: n.attr ? n.attr("site_id") : ''
            };
        }
    }
}

但是这个返回总是只有一个节点的树,而如果我在浏览器上打开相同的ajax调用,则返回更多节点。

是否可以制作像jstree一样的东西?我在做任何错误吗?

对不起这个微不足道的问题,但我是初学者。

提前致谢

此致

0 个答案:

没有答案