我正在尝试使用 JsTree 构建文件树(用于 Web 应用程序)。
我有不同的层次:
级别 1:维度
级别 2: 层次结构
(维度
的子级)
级别 3:niveau,Ordre_niveau = 1
(hierarchie
的子级)
level n: niveau, Ordre_niveau = n
(niveau ordre (n-1)
的 child )
我成功填充了dimension
和hierarchie
,但是我所有的niveau
都在同一层,因为ordre<的信息
与niveau
的信息在同一个对象中。
这是我的代码:
var jsTreeData = [];
//"dimensions"
for (var i = 0; i < dimension.length; i++) {
jsTreeData.push({
'text': dimension[i].dimension_Nom_dimension,
'type': 'dimension',
'data': dimension[i],
'children': []
});
//"hiérarchies"
var x = -1;
for (var j = 0; j < hierarchie.length; j++) {
if (hierarchie[j].dimension_Dimension_id == jsTreeData[i].data.dimension_Dimension_id) {
jsTreeData[i].children.push({
'text': hierarchie[j].hierarchie_Nom_hierarchie,
'type': 'hierarchie',
'data': hierarchie[j],
'children': []
});
x = x + 1;
//"niveaux"
for (var k = 0; k < niveau.length && x < (jsTreeData[i].children.length); k++) {
for (var l = 0; l < niveau.length && x < (jsTreeData[i].children.length); l++) {
if (niveau[k].hierarchie_Hierarchie_id == jsTreeData[i].children[x].data.hierarchie_Hierarchie_id && niveau[k].niveau_Niveau_id == niveau[l].niveau_Niveau_parent_id && niveau[k].niveau_Ordre_niveau == 1 && niveau[l].niveau_Ordre_niveau == 2) {
jsTreeData[i].children[x].children.push({
'text': niveau[k].niveau_Nom_niveau,
'type': 'niveau',
'data': niveau[k],
'children': ({
jsTreeData: ({
'text': niveau[l].niveau_Nom_niveau,
'type': 'niveau',
'data': niveau[l]
})
})
});
}
}
}
}
}
}
结果是 Jstree 显示所有 dimension
,所有 hierarchie
但只有 niveau, Ordre_niveau = 1
而不是 niveau, Ordre_niveau = 2
等
好像Jstree 的属性children
不起作用。
最佳答案
我不明白你的问题,但你可以使用最简单的方法来修复和调试:console.log('Some label', variable);
在你有的每个地方使用它if ... else
或 for (i =0, ...)
或其他问题。它可以帮助您发现错误或错误。
关于javascript - 在JavaScript中构建一个数组来填充jsTree,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38743791/