我正在测试 getorgchart 并在某些条目上要求辅助父级。
每当我运行时,我都会收到错误:
类型错误:t 未定义
如果我注释掉以下行,它会加载并显示图表 - 没有 seocndard 链接:
secondParentIdField: "secondKey",
我使用 HTML 表格作为源,我也尝试过 CSV。
我发现这个链接回原始文档:
这是使用 JSON 作为源并仅在需要时列出 secondParenId(例如:http ://www.getorgchart.com/Demos/Second-Parent-Relation )
我想知道这是否是 HTML/CSV 与 JSON 的标记问题。我尝试将值 null 和 0 添加到 html 表,但它仍然显示相同的错误。
HTML 表源 - 请注意,我正在编辑示例文件,因此它正在加载 jquery 和 getorgchart 文件正确:
<table id="orgChartData">
<tr>
<th>Key</th>
<th>parentKey</th>
<th>secondKey</th>
<th>team</th>
<th>name</th>
<th>title</th>
<th>email</th>
<th>dd</th>
<th>mob</th>
<th>image</th>
</tr>
<tr>
<td>1</td>
<td></td>
<td></td>
<td></td>
<td>Test 1</td>
<td>Tile 1</td>
<td>email1@email.co.uk</td>
<td>0000 123456</td>
<td>0000 123456</td>
<td>person.jpg</td>
</tr>
<tr>
<td>2</td>
<td>1</td>
<td>3</td>
<td></td>
<td>Test 2</td>
<td>Title 2</td>
<td>email2@email.co.uk</td>
<td>0000 123456</td>
<td>N/A</td>
<td>person.jpg</td>
</tr>
<tr>
<td>3</td>
<td>1</td>
<td></td>
<td></td>
<td>Test 3</td>
<td>Title 3</td>
<td>email3@email.co.uk</td>
<td>0000 123456</td>
<td>0000 123456</td>
<td>person.jpg</td>
</tr>
<tr>
<td>4</td>
<td>5</td>
<td>2</td>
<td></td>
<td>Test 4</td>
<td>Title 4</td>
<td>email4@email.co.uk</td>
<td>0000 123456</td>
<td>N/A</td>
<td>person.jpg</td>
</tr>
<tr>
<td>5</td>
<td>3</td>
<td></td>
<td>Business Development ePractice</td>
<td>Test 5</td>
<td>Title 4</td>
<td>email5@email.co.uk</td>
<td>0000 123456</td>
<td>0000 123456</td>
<td>person.jpg</td>
</tr>
JavaScript:
<script type="text/javascript">
var peopleElement = document.getElementById("people");
var orgChart = new getOrgChart(peopleElement, {
idField: "Key",
secondParentIdField: "secondKey",
theme: "monica",
linkType: "M",
primaryFields: ["name", "title", "email"],
photoFields: ["image"],
enableGridView: true,
enableEdit: false,
expandToLevel: 2,
dataSource: document.getElementById("orgChartData"),
});
</script>
编辑:
在经过一些调试之后,JSON 和 HTML 之间的数据的主要区别是:
要获取此信息,请添加
console.log(this.nodes);
后
for (var e in this.nodes) {
来自 HTML:
spid: ""
来自 JSON:
spid: undefined
这是输出
修复在代码中对我有用的功能:
getOrgChart.node = function(d, f, h, c, g, e, a, b) {
添加这个:
h = (h == "") ? undefined : h;
前:
this.spid = h;
这需要在原始代码中进行修复,我刚刚将其缩小以进行调试。