Angular 6 - rxjs管道不能处理valueChanges

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)