【发布时间】:2020-10-08 03:44:25
【问题描述】:
我尝试在使用 changeDetection: ChangeDetectionStrategy.OnPush, 的组件中执行以下操作
@ViewChild('searchInput') input: ElementRef;
ngAfterViewInit() {
this.searchText$ = fromEvent<any>(this.input.nativeElement, 'keyup')
.pipe(
map(event => event.target.value),
startWith(''),
debounceTime(300),
distinctUntilChanged()
);
}
在模板中
<div *ngIf="searchText$ | async as searchText;">
results for "<b>{{searchText}}</b>"
</div>
它不起作用,但是如果我删除OnPush,它会起作用。我不太清楚为什么,因为异步管道应该触发更改检测。
编辑:
根据答案,我尝试用以下内容替换我所拥有的:
this.searchText$ = interval(1000);
没有任何@Input,async 管道正在标记我的组件以供检查,它工作得很好。所以我不明白为什么我没有与fromEvent 相同的行为
【问题讨论】:
标签: javascript angular typescript rxjs