0

我在 AngularJS 环境中,并试图让 jqWidgets TreeGrid 工作。

我将 dataAdapter 全部与 Json 格式的数据连接起来,但是网格只呈现一行。

我在同一页面上也有一个测试 treeGrid,并带有示例数据,它工作正常。

我将最终的 Json 数据设置并排放置,以尝试确定我哪里出错了。

我已将此页面用作连接 treegrid 设置等的指南。http://www.jqwidgets.com/jquery-widgets-documentation/documentation/angularjs/angularjs.htm

这是显示“坏”网格的 jqx treegrid 指令的 html:

<jqx-tree-grid jqx-instance="jqGridHierObj" jqx-settings="vm.jqGridHierSettings"></jqx-tree-grid>

并且“坏”的 Json 数据树设置绑定了 vm.jqGridHierSettings(太大而无法内联发布):

http://www.bobmazzo.com/grid/TreeGrid_Data_Bad.txt

这是带有员工测试数据的“好”网格:

HTML:

<jqx-tree-grid jqx-instance="jqGridEmpObj" jqx-settings="vm.jqGridEmpSettings"></jqx-grid>  

vm.jqGridEmpSettings Json 数据:

http://www.bobmazzo.com/grid/TreeGrid_Data_Good.txt

并从我的 Angular 控制器代码中获取带有 Json 数据绑定的 javascript 片段:

我需要帮助来弄清楚为什么“坏”网格不起作用!以及为什么它只呈现一行,应该在哪里显示数据的层次结构。

谢谢。

鲍勃

4

1 回答 1

0

我找到了解决方案。您必须将“孩子”定义为“源”对象中的数组类型;也就是说,在将该对象传递到 dataAdapter 之前。请参阅下面的 dataFields 属性:

   var source = {
            dataType: "json",
            dataFields: [
                {
                    "name": "id",
                    "type": "number"
                },
                {
                    "name": "field0",
                    "type": "string"
                },
                {
                    "name": "field1",
                    "type": "number"
                },
                {
                    "name": "field2",
                    "type": "number"
                },
                 {
                     name: 'children',      // MUST DEFINE CHILDREN AS ARRAY TYPE
                     type: 'array'
                 },
            ],
            hierarchy: {
                root: 'children'
            },
            id: 'id',
            localData: myData
        };

   var dataAdapter = new $.jqx.dataAdapter(source);
于 2014-10-01T12:08:10.500 回答