【发布时间】:2020-03-12 22:10:10
【问题描述】:
当我使用任何 mxgraph 方法/值时,我的 mxgraph 是“未定义”
我已经在这个帖子上尝试过 viks 的回答:How to integrate mxGraph with Angular 4?
但即使这给了我打字和智能感知工作正常,我仍然有我的 mxgraph 未定义。
我应该提一下,这是一个全新的 Angular 项目,我只是按照 viks 的教程来到这里。
import { mxgraph } from "mxgraph";
declare var require: any;
const mx = require('mxgraph')({
mxBasePath: 'assets/mxgraph'
});
@Component({...})
export class LetestComponent implements OnInit {
ngOnInit() {
var container = document.getElementById('graphContainer');
var graph = new mx.mxGraph(container);
}
}
在 HTML 文件中使用这个
<div id="graphContainer"></div>
我不应该有任何错误,我应该能够使用 mx 来调用任何 mxGraph 方法。
当我编译代码时,它似乎工作正常,但是当我在浏览器的控制台上查看它时,我有:
“未捕获的类型错误:无法设置未定义的属性 'mxBasePath' 在 build.js:11 在 Module../src/app/lettest/letest.component.ts (letest.component.ts:6)"
我不知道这是否是个问题,因为我使用的是 angular 8,而 viks 的答案是 angular 4,或者它是否是从那时起可能已经改变的打字稿语法。
如果有人可以帮助我,那就太棒了,
提前致谢!
编辑:我仍在尝试很多事情,但我认为我并不真正理解“require('mxgraph')”部分,即使 mx 常量不是未定义的,也存在未定义的部分如果我将它记录到课堂上的控制台。也许在 Angular 8 中有一种新方法可以做同样的事情?
我还应该提到 mxgraph 的类型似乎在 Visual Code Studio 中运行良好,就像我有定义但没有实际代码。
编辑 2:在深入研究之后,我开始使用 https://itnext.io/how-to-integrate-mxgraph-with-angular-6-18c3a2bb8566 但问题是这些类型已有 4 年历史,因此它缺少最新 mxgraph 版本中的大量方法/变量。
我发现在这些类型中只有(正在工作)
declare class mxGraph{..}
而最新的类型使用(不工作)
declare namespace mxgraph {
export class mxGraph {..}
}
有人能解释一下区别吗?
【问题讨论】:
标签: angular typescript mxgraph