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

单击 cytoscape 图上的节点调用方法

如何解决单击 cytoscape 图上的节点调用方法

我试图通过传入节点的 id 来调用一个方法,但它一直说该方法不是一个函数

这是 stackblitz 链接https://stackblitz.com/edit/cytoscape-call-method?file=src/app/app.component.ts

您可以单击任何节点并查看控制台错误。它说 this.showId 不是一个函数

一些代码

 this.cy.on('click','node',function(evt) {
      console.log('clicked ' + this.id());
      this.showId(this.id());
    });

我也尝试过使用 tap,但仍然出现相同的错误

解决方法

嗯,我想我明白你的意思了。这是关于 JS 中的作用域。下面试试

this.cy.on('click','node',(evt) => {
  console.log('clicked ' + this.id());
  this.showId(this.id());
});

或以下

this.cy.on('click',function (evt) {
  console.log('clicked ' + this.id());
  this.showId(this.id());
}.bind(this));

两者其实是一样的

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