Zoomchart净图表表单链接问题

时间:2019-07-05 06:48:44

标签: javascript angularjs zoomcharts netchart

我正在使用Zoomchart库的NetChart类来形成netchart。但是我面临链接问题。而且找不到任何解决方案。

下面是我要实现的情况:-

假设我们有两个节点 A B 。这里 A 是卖方,而 B 是买方。

Seller A -> B
Buyer  B -> A

我正在动态加载数据。而且,当我们最初加载 A 时,就会得到 B 作为 A 的买方。这就形成了一个像 A-> B 的链接。但是,当 B 加载其相关数据时,就会得到 A ,因为它正在从中购买数据(A)。 这形成了两个链接节点:-

{
    "from": "A",
    "to": "B"
}

{
    "from": "B",
    "to": "A"
}

它正在创建一个像这样的图表:-

enter image description here

但是它应该是一个链接。下面是代码:-

this.chartObject = new NetChart({
    container: document.getElementById('sellerBuyersLinkingChart'),
    area: { height: null },
    navigation:{
       focusNodeExpansionRadius: 1,
       initialNodes: ["n-1"],
       mode:"focusnodes"
    },
    data: {
        dataFunction: (nodeList, success, error) => {

            $.ajax({
                url:url+'?nodes='+nodeList.toString(),
                success: (response, textStatus, jqXHR) => {

                    success(response, textStatus, jqXHR);
                },
                error: error
            });
        },
        requestMaxUnits: 1
    },
    style: {
        nodeStyleFunction: (node) => {
        },
        linkStyleFunction: (link) => {
            let type = link.data['extra']['type'];
            if(type == 'sellers') {
                link['fromDecoration'] = "arrow";
                link['fillColor'] = "rgba(47,195,47,0.8)";
                link['direction'] = "L";
            } else {
                link['toDecoration'] = "arrow";
                link['fillColor'] = "rgba(236,46,46,0.8)";
                link['direction'] = "R";
            }

        },
        nodeFocused: {
            fillColor: 'rgba(232,189,43,1)'
        }
    }
});

期望:我可以通过任何方式发送带有URL的链接ID。这样,我可以从链接中删除同一节点。

此图表应创建如下节点:-

enter image description here

1 个答案:

答案 0 :(得分:0)

1)如果链接不是唯一的,则可以使用multiLinkProcessor组合多个链接

2)如果在链接中添加唯一ID,则可以单独更新,删除或操作它们(实际上,建议始终为链接和节点添加ID,这样可以防止重复)。没有ID也会在控制台日志中提示通知。