微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

“节点上的点击事件”是否适用于美人鱼 js 的角度?

如何解决“节点上的点击事件”是否适用于美人鱼 js 的角度?

我正在尝试将 Mermaid 流程图绘制 Javascript 集成到基于 angular 9 的客户端应用程序中。我能够绘制流程图,但我确实需要在具有 Typescript(组件文件)中定义的函数的特定节点上提供单击事件。 有人可以举例说明如何解决这个问题吗?

这是我的代码 html :

特:
@ViewChild('mermaid',{ static: true }) mermaid: ElementRef;

  ngAfterViewInit () {
    mermaid.initialize(this.config);
    const element: any = this.mermaid.nativeElement;
    const graphDeFinition = `graph TD\nA[Christmas] -->|Get money| B(Go shopping)\nB --> C(Let me think)\nC -->|One| D[Laptop]\nC -->|Two| E[iPhone]\nC -->|Three| F[fa:fa-car Car]\nA[Christmas] -->|Get money| D[Laptop]\nB --> E \nclick A CustomFunction`;

    let _local = this;
    var insertSvg = function(svgCode,bindFunctions){
      element.innerHTML = svgCode;
      bindFunctions(element);
};
var id = 'theGraph';
mermaid.render(id,graphDeFinition,insertSvg,element);
}

CustomFunction = function() {
     alert("Hello World");
 };

谢谢,

1 个答案:

答案 0 :(得分:2)

我在 angular 7 上解决了这个问题,但方法很糟糕。我将使用直到使用正确的代码方法关闭此问题。

添加了点击事件这个代码“click a1 call sessionStorage.setItem(Clickednode,a1)”,我在运行时用这个代码读取了 sessionStorage:

ngOnInit() {

setInterval(() => {

    let nodeId = sessionStorage.getItem("Clickednode");

    if (nodeId) {

       if (nodeId == "a1") {

           // Todos

       }

    }

    sessionStorage.removeItem("Clickednode");

});

}

解决方法

我在 angular 7 上解决了这个问题,但方法很糟糕。我将使用直到使用正确的代码方法关闭此问题。

我添加了点击事件这个代码“click a1 call sessionStorage.setItem(ClickedNode,a1)”,我在运行时用这个代码读取了 sessionStorage:

ngOnInit() {

setInterval(() => {

    let nodeId = sessionStorage.getItem("ClickedNode");

    if (nodeId) {

       if (nodeId == "a1") {

           // Todos

       }

    }

    sessionStorage.removeItem("ClickedNode");

});

}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。