2016-10-14 3 views
0

私はvis.js visualization libraryを使用しています。私は、「特別な」グループを削除したいvis.js:データセット内のアイテムのプロパティを削除します

var nodes = new vis.DataSet([ 
    {id: 1, label: 'Item 1', group: "special"}, 
    {id: 2, label: 'Item 2'}, 
} 

を使用してインスタンス化されたvis.js datasetを持っています。その後、データセットの状態は、グループなしでインスタンス化されたデータセットと同一である必要があります:

var nodes2 = new vis.DataSet([ 
    {id: 1, label: 'Item 1'}, 
    {id: 2, label: 'Item 2'}, 
} 

どのように項目自体を削除せずに、データセットオブジェクト内のアイテムからプロパティを削除しますか?私は成功せずにテストした


方法:nodes.update({id:1, groups: undefined})nodes.update({id:1, groups: null})nodes.update({id:1, groups: 0})

+0

あなたはこれを試していました: 'nodes.update({ID:1、ラベル: 'アイテム1'} ) ' – Mojtaba

+0

@Mojtabaがやった。動作しません。更新は属性の追加と上書き –

答えて

0

ヴィスJS、これ/追加する新しい値を修正することなく、既存のものを削除するだけではなく、オブジェクトの値をマージします。私は削除/挿入ロジックで終わった。あなたのケースでは、私はどうなる:

let nodes = new vis.DataSet([ 
    {id: 1, label: 'Item 1', group: "special"}, 
    {id: 2, label: 'Item 2'}, 
} 

let nodeId = 1; 
let propertyToRemove = 'group'; 
// get a node 
let node = nodes.get(nodeId); 
// remove property 
delete node[propertyToRemove]; 

// get positions (only for nodes with x and y coordinates) 
// only if x and y are not present on original node 
let coordinates = vis.Network.getPositions([nodeId])[nodeId]; 
// copy coordinates 
node = Object.assign(node, coordinates); 

// remove node 
nodes.remove(nodeId); 
// add cloned node 
nodes.add(node); 

あなたは便宜上vis.DataSet.prototypeに機能としてこのコードを書くことができます

関連する問題