我正在尝试使用 ngx-graph 库创建一个图形(我是新手)。我正在尝试以动态方式创建节点和边。我从服务中获取信息,并将这些数据推送到两个单独的数组(节点和边)中。问题是数据被正确推送,但我的图形在同一位置创建节点和边。(x=0 和 y=0)。我也试图强迫这个位置,但不要改变。
<ngx-graph *ngIf="nodes.length > 0 && links.length > 0 && !loading"
layout="dagre"
[view]="[800,500]"
[links]="links"
[nodes]="nodes">
</ngx-graph>
在我的 .ts 组件中,我添加了节点和边:
createGraph() {
this.nodes = [];
this.links = [];
if (this.items) {
this.nodes.push({
id: this.items.id,
label: this.items.description
});
if (this.items.motivations) {
let i = 0;
for (let motivation of this.items.motivations) {
++i;
this.nodes.push({
id: motivation .id,
label: motivation .description
});
this.links.push({
id: motivation .id,
source: this.nodes[0].id,
target: motivation .id
});
}
}
this.loading = false;
}
}
最后我总是在控制台中出现这个错误
错误类型错误:无法读取未定义的属性“维度” 在泳道-ngx-graph.js:2016 在 Array.map() 在 QueryList.push../node_modules/@angular/core/fesm5/core.js.QueryList.map (core.js:5412) 在 GraphComponent.push../node_modules/@swimlane/ngx-graph/fesm5/swimlane-ngx-graph.js.GraphComponent.applyNodeDimensions (swimlane-ngx-graph.js:1988) 在 GraphComponent.push../node_modules/@swimlane/ngx-graph/fesm5/swimlane-ngx-graph.js.GraphComponent.draw (swimlane-ngx-graph.js:1796) 在泳道-ngx-graph.js:1768 在 ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:421) 在 Object.onInvokeTask (core.js:4053) 在 ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:420) 在 Zone.push../node_modules/zone.js/dist/zone.js.Zone.runTask (zone.js:188)