在Angular 6中使用MorrisJs的click事件

时间:2018-10-01 11:02:44

标签: angular onclick click morris.js

我在一个项目中使用this wrapper of MorrisJs Chart。效果很好,但是我找不到找到click事件结果的方法。

使用使用jQuery的原始Morris.js,可以获取如下click事件:

Morris.Line({ 
    ...
}).on('click', function(i, row) { 
    console.log(i);
    console.log(row);
});

您知道如何使用Angular拦截该点击吗?谢谢!

1 个答案:

答案 0 :(得分:0)

今天我找到了解决方案。该指令应进行3处更改:

  1. import Output, EventEmitter
  2. 将输出初始化为事件发射器@Output() clickChart = new EventEmitter();
  3. 使用指令输出绑定Morris图表click事件: let my_this = this; this.chartInstance.on('click', function(i, row) { my_this.clickChart.emit({ event, i, row }); });

然后,可以通过方法(clickChart)在组件中捕获click事件。 示例:

<div    mk-morris-js
        type='Bar'
        [options]='options'
        [data]='datas'
        (clickChart)='test($event)'
></div>

指令的完整来源可以在my pull request中看到。