Angular 5 mat-expansion-panel 在另一个 - Event-Propagation
Angular 5 mat-expansion-panel in another one - Event-Propagation
我需要在一个 mat-expansion-panel 中制作 n mat-expansion-panels。
所以到目前为止这没有问题,但是当我尝试打开 child-panel 时,parent-panel 中的 close-event 触发器。
我在parent的header里也有input-fields。当我单击这些或按 return 时,closing/open-events 触发器。
我试图制定一个指令,以阻止 click-event 冒泡,但这只有在我单击输入字段时才有效。即使我将指令放在每个 html-element 中,它 triggers/propagates 事件
import { Directive, HostListener } from '@angular/core';
@Directive({
selector: '[appStopEventPropagation]'
})
export class StopEventPropagationDirective {
constructor() { }
@HostListener("click", ["$event"])
public onClick(event:any):void{
event.stopPropagation();
}
}
部分解决
我通过在指令中为 keydown-event 添加方法解决了 return-key-problem。其他扩展面板的问题仍然存在。
Nice picture with my drawings of my View
HTML 可能无缘无故有点大,但是,嘿,它有用……有点
Part 1 Template
Part 2 Template
已解决
我不知道你的模板是什么样子的。您可以做的是:
<mat-panel-description>
<input placeholder="Type your name and age" (click)="$event.stopPropagation()"/>
</mat-panel-description>
如评论中所述,缺少内部 mat-accordion
。
工作示例:https://stackblitz.com/edit/angular-rzjstg
我需要在一个 mat-expansion-panel 中制作 n mat-expansion-panels。 所以到目前为止这没有问题,但是当我尝试打开 child-panel 时,parent-panel 中的 close-event 触发器。
我在parent的header里也有input-fields。当我单击这些或按 return 时,closing/open-events 触发器。
我试图制定一个指令,以阻止 click-event 冒泡,但这只有在我单击输入字段时才有效。即使我将指令放在每个 html-element 中,它 triggers/propagates 事件
import { Directive, HostListener } from '@angular/core';
@Directive({
selector: '[appStopEventPropagation]'
})
export class StopEventPropagationDirective {
constructor() { }
@HostListener("click", ["$event"])
public onClick(event:any):void{
event.stopPropagation();
}
}
部分解决
我通过在指令中为 keydown-event 添加方法解决了 return-key-problem。其他扩展面板的问题仍然存在。
Nice picture with my drawings of my View
HTML 可能无缘无故有点大,但是,嘿,它有用……有点
Part 1 Template
Part 2 Template
已解决
我不知道你的模板是什么样子的。您可以做的是:
<mat-panel-description>
<input placeholder="Type your name and age" (click)="$event.stopPropagation()"/>
</mat-panel-description>
如评论中所述,缺少内部 mat-accordion
。
工作示例:https://stackblitz.com/edit/angular-rzjstg