Связанные атрибуты не работают

Я пытаюсь установить "визуальные переменные", но мне это не удается. полный код здесь: http://pastebin.com/j6i1B8ie

<script type="application/javascript">
    var neo = { 
        url: 'http://localhost:7474',
        user: 'neo4j',
        password: '***'
    };  
    function customiseGraph(s) {
        s.graph.nodes().forEach(function(n) {
            n.type = 'square';
            n.color = '#4444BB';
            n.labelAlignment = 'left';
            if (n.neo4j_labels[0] == 'DMSys') {
                n.label = n.neo4j_data.System;
            }   
            if (n.neo4j_labels[0] == 'DMFile') {
                n.label = n.neo4j_data.Name;
                n.color = '#BB4444';
            }   
        }); 
        s.refresh();
    }   

    sigma.neo4j.cypher(neo,
        'MATCH (n) OPTIONAL MATCH (n)-[r]->(m) RETURN n,r,m LIMIT 100',
        { container: 'graph', type: 'canvas' },
        customiseGraph
    );  
</script>

в приведенном выше примере я ожидаю, что каждый отображаемый узел отображается в виде квадрата, но это не так. обратите внимание, цвета установлены правильно, но ни labelAlignment или же type уважаются.

я не могу сделать это таким образом? или чего мне не хватает?

* Обновление I *

function customiseGraph(s) {
    s.settings({
        labelAlignment: 'inside',
        edgeColor: 'default',
        defaultEdgeColor: '#ff0000'
    }); 
    s.graph.nodes().forEach(function(n) {
        n.color = '#4444BB';
        if (n.neo4j_labels[0] == 'DMSys') {
            n.label = n.neo4j_data.System;
        }   
        if (n.neo4j_labels[0] == 'DMFile') {
            n.label = n.neo4j_data.Name;
            n.color = '#BB4444';
        }   
    }); 
    s.refresh();
}

который я ожидал бы получить красные края и метки внутри узлов, но не делает ни того, ни другого. что еще мне нужно?

1 ответ

Решение

Какой рендерер узлов вы используете? Предпочтительно использовать sigma.renderers.linkurious. Рендереры - это обезьяньи патчи стандартных рендеров Sigma. Чтобы использовать sigma.renderers.linkurious, просто добавьте файлы этого средства визуализации в ваш код, как показано в https://github.com/Linkurious/linkurious.js/blob/linkurious-version/examples/renderers-linkurious.html.

labelAlignment это не свойство узла, а параметр Sigma, который должен применяться ко всем узлам, см. https://github.com/Linkurious/linkurious.js/wiki/Settings. Вы не можете применить его к конкретным узлам.

EDIT2: исправлено в https://github.com/Linkurious/linkurious.js/issues/139

Другие вопросы по тегам