为了账号安全,请及时绑定邮箱和手机立即绑定

如何在同一事件中调用打字稿箭头函数和 javascript 函数

如何在同一事件中调用打字稿箭头函数和 javascript 函数

肥皂起泡泡 2021-06-28 13:01:18
我想从同一个事件中调用 javascript 函数和 typescript 函数。它是图表中的一个 onClick 事件。我对打字稿和角度比较陌生,所以我不知道我在做什么甚至可能。问题是:我需要调用一个 javascript 函数来获取图表中的激活条,并调用 typescript 函数在角度组件中打开一个对话框。    onClick: function(evt){      console.log(this);//<-- returns chart      bar: () => {console.log(this)}; //<-- here I try to get this as component      bar(); // <--doesnt work      //console.log(document.getElementById('myChart'));  }如果我展示整个事情,也许更好。  public barChartOptions = {    scaleShowVerticalLines: false,    responsive: true,    events: ['mousemove', 'mouseout', 'click', 'touchstart', 'touchmove'],    onHover: console.log('onHover'),    onClick: function(evt){      //console.log(evt); Mouse Event      console.log(this);      const getFirst = array => console.log(this);      console.log(getFirst);      //bar: () => {console.log(this)};      //bar();      //console.log(document.getElementById('myChart'));  },    /*    onClick : (evt, datasets) => {      //let self = this;      //console.log(self);      if(datasets.length > 0){        this.openDialog();        console.log(this);        console.log(this.barChart);      }    },*/    scales: {      xAxes: [{        stacked: true      }],      yAxes: [{        stacked: true      }]    },    legend: {      display: true,      position: 'right'    },    tooltips: {      enabled: true,      mode: 'point'    }  };这是我的 html 模板:  my-bar-dialog works!  <div>    <div style="display: block">      <canvas baseChart              id="myChart"              [datasets]="barChartData"              [labels]="barChartLabels"              [options]="barChartOptions"              [legend]="barChartLegend"              [chartType]="barChartType">      </canvas>    </div>  </div>  <button mat-raised-button (click)="openDialog()">Pick one</button>  <button (click)="openDialog()">Pick one</button>
查看完整描述

2 回答

?
慕容708150

TA贡献1831条经验 获得超4个赞

在组件中使用图表之前,将其分配给其他一些变量,例如


var that=this


然后在你的图表中


 onClick: function(evt){


      console.log(this);//<-- returns chart


   let   bar= () => {console.log(that)}; //<-- that should have your component refrence


  }


查看完整回答
反对 回复 2021-07-08
  • 2 回答
  • 0 关注
  • 190 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信