我有使用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事件也会触发它
任何人都可以想到实现这一目标的方法吗?