猿问

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

我想从同一个事件中调用 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>


肥皂起泡泡
浏览 191回答 2
2回答

慕容708150

在组件中使用图表之前,将其分配给其他一些变量,例如var that=this然后在你的图表中&nbsp;onClick: function(evt){&nbsp; &nbsp; &nbsp; console.log(this);//<-- returns chart&nbsp; &nbsp;let&nbsp; &nbsp;bar= () => {console.log(that)}; //<-- that should have your component refrence&nbsp; }
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答