我想从同一个事件中调用 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
}
添加回答
举报
0/150
提交
取消