angular directive 实现自定义事件

directive

通过directive可以获取到dom节点,并且可以在基础事件之上分装自定义的一些事件
###例子

host-listen.directive.ts
import { Directive, Output, EventEmitter, OnInit, Renderer, Renderer2, ElementRef } from '@angular/core';

@Directive({
  selector: '[appHostListen]'
})
export class HostListenDirective implements OnInit{
  @Output('myEvent') myEvent: EventEmitter<any> = new EventEmitter();
  constructor(public rd: Renderer, public rd2: Renderer2, public ele: ElementRef) { }
  onClick() {
    
  }
  ngOnInit() {
    this.rd.listen(this.ele.nativeElement, 'click', () => {
      console.log('sss');
      this.myEvent.emit('my event');
    });
  }
}

使用

<div class="demo-container">
  <button appHostListen (myEvent)="myselfClick()">test</button>
</div>

ps: 也可以把 @Output(‘myEvent’) 中的myEvent和directive 的selector名称设置成一样,那么<button (appHostListen )=“myselfClick()”>test

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值