停止在垫子复选框内传播垫子选择的事件

时间:2019-07-17 23:28:20

标签: event-handling angular-material angular7 material

我在<mat-select>中有一个<mat-checkbox>。当<mat-select>发生变化时,它也会切换<mat-checkbox>,但我不希望这种情况发生。

我尝试使用'$ event.stopPropagation()',但是它不起作用。有什么想法可以解决吗?

<mat-checkbox [(ngModel)]="myCheckboxModel" (change)="onChangeFunction()">
    <mat-form-field>
        <mat-select [(ngModel)]="mySelectModel">
            <mat-option value="1">1</mat-option>
            <mat-option value="2">2</mat-option>
        </mat-select>
    </mat-form-field>
</mat-checkbox>

1 个答案:

答案 0 :(得分:1)

我对嵌套的 mat-selection-list 项也有同样的问题。

这对我有用。

selectionChange(event: MatSelectionListChange)
{
    window['event']?.stopPropagation();
}

我今天才发现 window.event is deprecated,但在这种确切的上下文中,这并不容易,因为 angular 没有为我们提供基础事件。

如果您使用 SSR,请确保不要以编程方式调用它,因为 window 未定义。