在圖的第一負載我添加在我的模型三個要素:爲什麼在GoJS diagram.model.nodeDataArray的長度從diagram.findNodesByExample的結果不同({})
var model = new go.GraphLinksModel();
model.nodeKeyProperty = 'goKey';
model.nodeCategoryProperty = 'goType';
model.addNodeDataCollection([
{
goKey: 'instance1',
goType: 'component',
//other data
}, {
goKey: 'instance2',
goType: 'tcp',
//other data
}, {
goKey: 'instance3',
goType: 'tcp',
//other data
}]);
diagram.model = model;
console.log(diagram.findNodesByExample({}).count); //3
console.log(diagram.model.nodeDataArray.length); //3
然後我除去兩個項目與goType:「TCP」使用diagram.model.removeNodeData方法和模型中再次添加它們:
var item2 = _.find(diagram.model.nodeDataArray, {goKey: 'instance2'});
var item3 = _.find(diagram.model.nodeDataArray, {goKey: 'instance3'});
model.removeNodeData(item2);
model.removeNodeData(item3);
console.log(diagram.model.nodeDataArray.length); //1
console.log(diagram.findNodesByExample({}).count); //1
diagram.model.addNodeDataCollection([{
goKey: 'instance2',
goType: 'tcp',
//other data
}, {
goKey: 'instance3',
goType: 'tcp',
//other data
}]);
但畢竟這在圖不同節點的數量,我只看到兩個在畫布上的節點:
console.log(diagram.model.nodeDataArray.length); //3
console.log(diagram.findNodesByExample({}).count); //2
如果看一看diagram.findNodesByExample({}),使用方法每個,我看到INSTANCE2才被加入的結果:
diagram.findNodesByExample({}).each(function (item) {
console.log(item.data.goKey);
});
// instance1
// instance2
我做錯了什麼?
謝謝你的回答,但問題是重複使用已刪除的節點。刪除** __ gohashid **後,它已被修復。 – blackhard