我在AngularJS环境中,并试图让jqWidgets TreeGrid工作。
我将dataAdapter全部连接到Json格式的数据,但网格只呈现一行。
我在同一页面上也有一个测试treeGrid,并且有样本数据,工作正常。
我将最终的Json数据设置并排,以尝试确定我出错的地方。
我已将此页面用作连接树形网格设置等的指南。http://www.jqwidgets.com/jquery-widgets-documentation/documentation/angularjs/angularjs.htm
这是显示" bad"的jqx treegrid指令的html。格:
<jqx-tree-grid jqx-instance="jqGridHierObj" jqx-settings="vm.jqGridHierSettings"></jqx-tree-grid>
&#34;坏&#34; Json数据树设置绑定了vm.jqGridHierSettings(太大而无法发布内联):
http://www.bobmazzo.com/grid/TreeGrid_Data_Bad.txt
这是&#34;好&#34;网格与员工测试数据:
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片段:
我需要帮助弄清楚为什么&#34;坏&#34;网格不工作!为什么它只渲染一行,其中应该显示数据层次结构。
感谢。
鲍勃
答案 0 :(得分:0)
我找到了解决方案。您必须在“source”对象中将“children”定义为数组类型;也就是说,在将该对象传递给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);