Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Vis.js网络图未随节点更改而更新_Javascript_Angularjs_Vis.js - Fatal编程技术网

Javascript Vis.js网络图未随节点更改而更新

Javascript Vis.js网络图未随节点更改而更新,javascript,angularjs,vis.js,Javascript,Angularjs,Vis.js,我有一个函数,可以清除节点或边数据集中的任何数据,然后用新数据重新填充它们。这是一个分层网络,在创建所有节点和边后动态设置级别,因此最终会更改节点的级别属性 由nodes.update()调用添加。 节点的级别设置正确,可以在我的控制台日志中看到,但图表没有反映级别。没有显示任何错误。考虑到节点看起来是正确的,我不认为设置级别的方法是问题所在,但我能想到的唯一可能会产生干扰的其他事情是在像我这样的角度工厂中使用它,nodes.update()不会触发图形的重新渲染,或者使用我的选项。任何见解都是

我有一个函数,可以清除节点或边数据集中的任何数据,然后用新数据重新填充它们。这是一个分层网络,在创建所有节点和边后动态设置级别,因此最终会更改节点的级别属性 由nodes.update()调用添加。
节点的级别设置正确,可以在我的控制台日志中看到,但图表没有反映级别。没有显示任何错误。考虑到节点看起来是正确的,我不认为设置级别的方法是问题所在,但我能想到的唯一可能会产生干扰的其他事情是在像我这样的角度工厂中使用它,nodes.update()不会触发图形的重新渲染,或者使用我的选项。任何见解都是值得赞赏的,因为我真的不知道为什么设置这些级别不会改变我的图表

很抱歉,缺少信息。我只是不知道从哪里开始,不想分享我的整个文件

网络工厂:

var nodes, edges, network;
visApp.factory('networkFactory', function() {
    var service = {};

    service.init = function() {
        // create an array with nodes
        nodes = new vis.DataSet();

        // create an array with edges
        edges = new vis.DataSet();

        // create a network
        var container = document.getElementById('callFlow');
        var data = {
            nodes: nodes,
            edges: edges
        };
        var options = {
            physics: false,
            nodes: {
                shape: 'box',
                size: 25
            },
            edges: {
                smooth: {
                    type: 'cubicBezier',
                    roundness:.75
                }
            },
            layout: {
                hierarchical: {
                    direction: 'LR',
                    sortMethod: 'directed'
                }
            },
            interaction: {
                navigationButtons: true
            }
        };
        network = new vis.Network(container, data, options);
    };
    service.updateVis = function(profile) {
        try {
            console.log("updating network...");
            clearNetwork();
            addNodesFromProfile(profile);
            addEdgesFromProfile(profile);
            console.log("setting hierarchical levels");
            setLevels("ENTRY", 1, 1);
            console.log("network updated:\n" + JSON.stringify(nodes.get()));
        }
        catch(err) {alert(err)}
    };
console.log:

updating network...
adding nodes
adding edges
setting hierarchical levels
network updated:
[{"id":"mainMenu","label":"mainMenu","level":4},{"id":"broadcast","label":"broadcast","level":3},{"id":"greeting","label":"greeting","level":2},{"id":"salesMenu","label":"salesMenu","level":5},{"id":"exitAssurance","label":"exitAssurance","level":5},{"id":"EXIT","label":"EXIT","level":7},{"id":"exitArchitecture","label":"exitArchitecture","level":6},{"id":"exitSalesEast","label":"exitSalesEast","level":6},{"id":"exitCXAnalytics","label":"exitCXAnalytics","level":6},{"id":"servicesMenu","label":"servicesMenu","level":5},{"id":"exitSalesWest","label":"exitSalesWest","level":6},{"id":"exitOther","label":"exitOther","level":5},{"id":"ENTRY","label":"ENTRY","level":1}]
节点.update()
之后,可以使用
网络.redraw()
函数刷新视图。

添加

network.body.emitter.emit('_dataChanged')
以前

network.redraw()