Mat*_*sca 3 observable rxjs angular angular6
我有一个反应形式,带有文本输入.为了便于访问我的打字稿,我声明:
get parentId(): FormControl {
return this.addForm.get("parentId") as FormControl;
}
Run Code Online (Sandbox Code Playgroud)
这部分工作,控件被正确访问.
现在我的ngOnInit如果我这样做:
this.parentId.valueChanges.subscribe(() => console.log("Changed"));
Run Code Online (Sandbox Code Playgroud)
正如预期的那样,在输入中更改的每个字符处执行控制台日志.但如果我这样做:
this.parentId.valueChanges.pipe(tap(() => console.log("Changed")));
Run Code Online (Sandbox Code Playgroud)
什么都没发生.没有错误,没有任何错误.我也尝试过使用map,switchMap等等.似乎管道对valueChanges不起作用.我在我的代码中的其他地方使用管道方法在不同的observables上没有任何问题.
我需要在这里使用管道去抖动,映射等.
知道我做错了什么吗?
- 编辑 -
这是Angular Material网站上的自动填充组件的代码示例:
ngOnInit() {
this.filteredOptions = this.myControl.valueChanges
.pipe(
startWith(''),
map(val => this.filter(val))
);
}
Run Code Online (Sandbox Code Playgroud)
最后没有订阅,示例有效.
Saj*_*ran 13
你需要subrcibe来激活obserable,
ngOnInit() {
this.filteredOptions = this.myControl.valueChanges
.pipe(
startWith(''),
map(val => this.filter(val))
).subscribe();
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
8173 次 |
最近记录: |