0

我正在测试 getorgchart 并在某些条目上要求辅助父级。

每当我运行时,我都会收到错误:

类型错误:t 未定义

如果我注释掉以下行,它会加载并显示图表 - 没有 seocndard 链接:

    secondParentIdField: "secondKey",

我使用 HTML 表格作为源,我也尝试过 CSV。

我发现这个链接回原始文档:

GetOrgChart - 一个子节点的多个父节点

这是使用 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;

这需要在原始代码中进行修复,我刚刚将其缩小以进行调试。

4

1 回答 1

0

该问题已在最新版本 2.4.5 中得到解决

于 2018-02-05T18:59:26.360 回答