Как сделать добавленные узлы постоянными при ручной навигации
С использованием NetChart
зум-чартов (1.5.1), кажется, что addData()
работает только для navigation = showall
, В случае, если я пытаюсь использовать navigation = manual
, это требует initialNodes
,
Есть ли способ initialNodes
автоматически заполняется существующими данными (которые были добавлены постепенно)? Причина, по которой я этого хочу, заключается в том, что я хочу изначально загрузить определенный набор узлов / ссылок, используя navigation = showall
а затем измените его на navigation = manual
так что пользователь может нажать, чтобы увидеть всех соседей
В основном, следующий пример показывает этот случай... узел 'f-1' перезаписывается начальными узлами 'm-1'.
<script>
var t = new NetChart({
container: document.getElementById("demo"),
area: { height: 350 }
});
t.addData({nodes: [{loaded: true,id: "f-1",name: "Anna"},{id: "m-1",name: "Joe"}],links: [{to: "f-1",from: "m-1",id: "l01",type: "friend"}]});
t.updateSettings({
data:
{
preloadNodeLinks:true,
dataFunction: function(nodeList, success, error){
//return just the first node, net chart will ask for more
jQuery.ajax({
url:"/dvsl/data/net-chart/friend-net/"+nodeList[0]+".json",
success: success,
error: error});
}
},
navigation:{
initialNodes:["m-1"],
mode:"manual"
}
});
</script>
1 ответ
Найден обходной путь с помощью двойного клика:
<script>
var t = new NetChart({
container: document.getElementById("demo"),
area: {
height: 350
},
events:{
onDoubleClick: dclickEvent
}
});
t.addData({nodes: [{loaded: true,id: "f-1",name: "Anna"},{id: "m-1",name: "Joe"}],links: [{to: "f-1",from: "m-1",id: "l01",type: "friend"}]});
function dclickEvent(event){
if (!$("#click")[0].checked) return;
console.log('event.clickNode', event.clickNode);
if (event.clickNode) {
jQuery.ajax({
url: "/dvsl/data/net-chart/friend-net/" + event.clickNode.id + ".json",
success: function(data) {
console.log('test-foo-data', data);
t.addData(data);
}
})
}
}
</script>