2

一部のアイテムをフィルタリングするために 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);
})

クローズ時に変更イベントを停止する方法はありますか?

ここは遊園地

4

0 に答える 0