首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用d3-graphviz会导致无法读取null的属性“__graphviz__”

使用d3-graphviz会导致无法读取null的属性“__graphviz__”
EN

Stack Overflow用户
提问于 2021-08-06 16:23:55
回答 1查看 407关注 0票数 2

我只是想弄个DOT图来渲染。我遵循文档(https://github.com/magjac/d3-graphviz)来添加包并使用它,但是当我试图运行应用程序并访问DOT关系图时,不会呈现任何内容,并引发以下错误:

错误TypeError:无法读取属性'__graphviz__‘的null。控制台错误消息

该应用程序是一个角12项目,这里是使用的依赖项列表。

代码语言:javascript
复制
"dependencies": {
    "@angular/animations": "^12.1.4",
    "@angular/cdk": "^12.1.4",
    "@angular/common": "^12.0.5",
    "@angular/compiler": "^12.0.5",
    "@angular/core": "^12.1.4",
    "@angular/flex-layout": "^12.0.0-beta.34",
    "@angular/forms": "^12.0.5",
    "@angular/material": "^12.1.4",
    "@angular/platform-browser": "^12.0.5",
    "@angular/platform-browser-dynamic": "^12.0.5",
    "@angular/router": "^12.0.5",
    "angular2-uuid": "^1.1.1",
    "chart.js": "^3.5.0",
    "d3": "^7.0.0",
    "d3-graphviz": "^4.0.0",
    "git-describe": "^4.0.4",
    "monaco-editor": "^0.26.1",
    "ng2-charts": "^3.0.0-rc.4",
    "ngx-monaco-editor": "^12.0.0",
    "ngx-toastr": "^14.0.0",
    "rxjs": "~6.6.0",
    "tslib": "^2.1.0",
    "xml2js": "^0.4.23",
    "zone.js": "~0.11.4"
  },
  "devDependencies": {
    "@angular-devkit/build-angular": "^12.0.5",
    "@angular-eslint/builder": "12.2.0",
    "@angular-eslint/eslint-plugin": "12.2.0",
    "@angular-eslint/eslint-plugin-template": "12.2.0",
    "@angular-eslint/schematics": "12.3.1",
    "@angular-eslint/template-parser": "12.2.0",
    "@angular/cli": "^12.1.4",
    "@angular/compiler-cli": "^12.0.5",
    "@types/chart.js": "^2.9.34",
    "@types/d3": "^7.0.0",
    "@types/d3-graphviz": "^2.6.7",
    "@types/jasmine": "~3.6.0",
    "@types/node": "^12.20.17",
    "@typescript-eslint/eslint-plugin": "^4.28.5",
    "@typescript-eslint/parser": "^4.28.5",
    "eslint": "^7.31.0",
    "eslint-config-airbnb-typescript": "^12.3.1",
    "eslint-config-prettier": "^8.3.0",
    "eslint-plugin-import": "^2.23.4",
    "eslint-plugin-prettier": "^3.4.0",
    "jasmine-core": "~3.7.0",
    "karma": "^6.3.4",
    "karma-chrome-launcher": "~3.1.0",
    "karma-coverage": "~2.0.3",
    "karma-jasmine": "~4.0.0",
    "karma-jasmine-html-reporter": "^1.7.0",
    "prettier": "2.3.2",
    "source-map-explorer": "^2.5.2",
    "typescript": "^4.2.4"
  }

在ngOnInit内部:

代码语言:javascript
复制
ngOnInit(): void {
    wasmFolder('/assets/@hpcc-js/wasm/dist/');
    console.log('file-viewer init');
}

代码查看它所传递的文件的文件名,并根据扩展名执行操作。当我们有一个DOT文件时,我们执行以下操作:

代码语言:javascript
复制
else if (originalFile.filename.toLocaleLowerCase().includes('.dot')) {
      console.log('dot file was given');
      // this.activeType = TypeCode.DOT;
      // this.dotRenderer.renderDot(contents);
      // d3.select('#dotViewerElement').graphviz().renderDot(contents);
      graphviz('#dotViewerElement').renderDot(contents);
      // graphviz.graphviz('#dotViewerElement').renderDot(contents);
    }

注释行是访问“renderDot(.)”的所有不同尝试。函数。

wasmFolder已添加到位于

应用工程

-- node_modules

-- src

- app

-资产

-- @hpcc-js

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-27 11:14:47

更新:我找到答案了。引发错误是因为呈现关系图时还没有呈现dom对象(div)。当我使用ngAfterViewInit而不是ngOnInit时,它是有效的!

我也面临着同样的问题。如果我不使用类型记录,而只是在我的html文件正文中复制脚本标记和示例脚本(所以替换角的app根),它就能正常工作,但是如果我在我的app根旁边使用它,它会抛出这个错误。你找到解决办法了吗?

例如:

这适用于我的index.html

代码语言:javascript
复制
<body>
<script src="//d3js.org/d3.v5.min.js"></script>
<script src="https://unpkg.com/@hpcc-js/wasm@0.3.11/dist/index.min.js"></script>
<script src="https://unpkg.com/d3-graphviz@3.0.5/build/d3-graphviz.js"></script>
<div id="graph" style="text-align: center;"></div>
<script>

d3.select("#graph").graphviz()
    .renderDot('digraph  {a -> b}');

</script>

这不管用:

代码语言:javascript
复制
<head>
  <script src="//d3js.org/d3.v5.min.js"></script>
  <script src="https://unpkg.com/@hpcc-js/wasm@1.12.8/dist/index.min.js"></script>
  <script src="https://unpkg.com/d3-graphviz@4.0.0/build/d3-graphviz.js"></script>
  <script>
    d3.select("#graph").graphviz()
    .renderDot('digraph  {a -> b}');
</script>
</head>
<body>
  <div id="graph" style="text-align: center;"></div>
  <app-root></app-root>
</body>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68684804

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档