一部のアイテムをフィルタリングするために a のmat-selection-list内側を使用しています。mat-menuメニューが閉じられるたびに、選択リストvalueChangesがフォームでイベントをトリガーするようです。どうすればこれを止めることができますか? valueChangesメニューと入力で同じことをしても、メニューを閉じてもトリガーされません。
<button [matMenuTriggerFor]="m">Foo</button>
<mat-menu #m="matMenu" [overlapTrigger]="false" [formGroup]="form">
<ng-template matMenuContent>
<mat-selection-list (click)="$event.stopPropagation();" formControlName="foo">
<mat-list-option [value]="item" *ngFor="let item of [1,2]">{{item}}</mat-list-option>
</mat-selection-list>
</ng-template>
</mat-menu>
<button [matMenuTriggerFor]="m1">Foo1</button>
<mat-menu #m1="matMenu" [overlapTrigger]="false" [formGroup]="form1">
<ng-template matMenuContent>
<input formControlName="foo1" (click)="$event.stopPropagation();">
</ng-template>
</mat-menu>
this.form.valueChanges.subscribe(e => {
// gets triggered on menu close
console.log('changed form', e);
});
this.form1.valueChanges.subscribe(e => {
// doesn't get triggered on menu close
console.log('changed form1', e);
})
クローズ時に変更イベントを停止する方法はありますか?