我正在使用替代JSON格式来填充我的jsTree,如此link.
所示问题是我无法找到" id"属性在jsTree中有效吗?
在我的情况下,父母双方有时会有相同的名字。 (它不理想,但它是一个罕见的场景,弹出,所以我必须处理它)。所以我使用他们独特的" id" s"在树上。现在,如果父母的孩子节点具有相同的" id"作为父节点,不知何故,jsTree在按钮点击时不起作用并且继续显示"正在加载.."消息。
我的JSON:
[
{
"id": "3", //Any value except 3 and 5 works
"text": "Ford",
"parent": "3",
"icon": "fa fa-circle-o"
},
{
"id": "5", //Any value except 3 and 5 works
"text": "Fiat",
"parent": "5",
"icon": "fa fa-circle-o"
},
{
"id": "3",
"text": "Cars",
"parent": "#",
"icon": "glyphicon glyphicon-triangle-right"
},
{
"id": "5",
"text": "Cars",
"parent": "#",
"icon": "glyphicon glyphicon-triangle-right"
}
]
我的HTML代码:
<div id="car-list" class="collapse">
#{MyBean.jsonString}
</div>
<h:outputScript>
$(function() {
var data1= JSON.parse(document.getElementById("car-list").innerHTML);
$('#car-list').jstree({
'core': {
'data': data1
}
});
});
</h:outputScript>
其中jsonString
是一个包含上述json
答案 0 :(得分:3)
在jstree中,每次我有2个相同的键时,我只能看到一个元素而不是2个(用相同的键来讨论元素)。在你的情况下,我想问题是你的节点中有循环所以渲染永远不会结束。我通过从串联创建密钥(parentKey_childKey)来超越我的问题。所以在你的情况下,这将是:
[
{
"id": "3_3",
"text": "Ford",
"parent": "3",
"icon": "fa fa-circle-o"
},
{
"id": "5_5",
"text": "Fiat",
"parent": "5",
"icon": "fa fa-circle-o"
},
{
"id": "3",
"text": "Cars",
"parent": "#",
"icon": "glyphicon glyphicon-triangle-right"
},
{
"id": "5",
"text": "Cars",
"parent": "#",
"icon": "glyphicon glyphicon-triangle-right"
}
]
您还可以看到不支持具有相同键的多个节点here。