0

我试图通过传入节点的 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,但它仍然给出同样的错误。

4

1 回答 1

1

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

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

或以下

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

两者实际上是一样的

于 2021-06-15T19:20:30.783 回答