我有使用ngFor循环生成的消息列表,每个消息都有一个长按甚至使用模块,现在当用户长按div时它运行一个传递div-id的事件并转为true一个变量,使得能够突出显示div如果它的id匹配,基本上每个div都有ngClass绑定匹配它的id与存储的id,当用户长按时我将按下的div的id移动到变量,所以测试对于该div变为true,

问题是当-User在div外部点击时关闭突出显示 - 一旦选择了div,再次点击div

在编程中我简单地需要设置我的变量,我将id移动到null,但是在哪里编写代码来实现这一点很麻烦

这是div列表

<div class="message" *ngFor="let l of list" [ngClass]="{'selected':isMessageSelected(l)}" [class.left]="l.sender != me"
      [class.right]="l.sender == me" ion-long-press [interval]="400" (onPressStart)="pressed()" (onPressing)="active($event,l)"
      (onPressEnd)="released()">

如果长按,每次运行div时运行的三个事件的代码

pressed() {
    this.logger.info('Pressed');
    this.logger.info('@Pressed', this.l);
  }

  active(event: Event, l) {
    this.editModeActive = true;
    this.msg = l;
    this.selectedMessage = l.uid;
  }

  released() {
    this.logger.info('Released');
  }

当长按被触发时,在div上放置一个click事件会立即运行它,因此检查editModeActive也无济于事 .

注意:在长按div时,在全身上放置一个click事件也会触发它

任何人都可以想到实现这一目标的方法吗?

链接到离子长按npm:https://www.npmjs.com/package/ionic-long-press