【发布时间】:2020-04-20 21:09:15
【问题描述】:
我正在尝试使用 rxjs fromEvent 从 MatSelect 获取值。我不能让它知道发生了一个事件。我让它与 MatInput 一起使用,因为我认为它继承了 Html 输入元素的默认行为,但 MatSelect 有所不同。
如果我将 mat-select 换成默认选择,则会拾取(更改)事件并按预期工作。 (更改)在 MatSelect 上的某个时候显然已被弃用,并且不再有效。
我尝试将模板 ID 移动到 mat-option 以查看它是否可以从那里获取事件,但没有运气。 试过: (改变) (选择) (选择更改) (值变化)
@ViewChild('projectNameInput', {static: false, read: ElementRef}) projectNameInput: ElementRef;
@ViewChild('pipelineSelect', {static: false, read: ElementRef}) pipelineSelect: ElementRef;
@ViewChild('codeCoverageInput', {static: false, read: ElementRef}) codeCoverageInput: ElementRef;
ngAfterViewInit() {
// server-side search
const projectObs$ = fromEvent(this.projectNameInput.nativeElement, 'keyup');
const selectObs$ = fromEvent(this.pipelineSelect.nativeElement, 'onSelectionChange');
const coverageObs$ = fromEvent(this.codeCoverageInput.nativeElement, 'keyup');
const all$ = merge(projectObs$, selectObs$, coverageObs$)
.pipe(
debounceTime(300),
distinctUntilChanged(),
tap(() => {
this.paginator.pageIndex = 0;
this.loadSummariesPage();
})
)
.subscribe();
this.paginator.page
.pipe(
tap(() => this.loadSummariesPage())
)
.subscribe();
}
------------------------------------
<mat-form-field appearance="fill">
<mat-label>types</mat-label>
<mat-select name="type" [(ngModel)]="type">
<mat-option #x *ngFor="let option of options" [value]="option.value">
{{option.viewValue}}
</mat-option>
</mat-select>
</mat-form-field>
【问题讨论】:
标签: angular events rxjs angular-material