首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Angular 6- rxjs管道在valueChanges上不起作用

Angular 6- rxjs管道在valueChanges上不起作用
EN

Stack Overflow用户
提问于 2018-05-24 18:24:18
回答 1查看 16.9K关注 0票数 10

我有一个反应式表单,带有文本输入。为了便于在我的打字脚本中访问,我声明:

代码语言:javascript
复制
get parentId(): FormControl {
    return this.addForm.get("parentId") as FormControl;
}

如果此部分正常工作,则可以正确访问该控件。

现在在我的ngOnInit中,如果我这样做:

代码语言:javascript
复制
this.parentId.valueChanges.subscribe(() => console.log("Changed"));

不出所料,控制台日志会在输入中的每个字符发生变化时执行。但如果我这样做:

代码语言:javascript
复制
this.parentId.valueChanges.pipe(tap(() => console.log("Changed")));

什么都没发生。没有错误,没有任何东西。我也尝试过使用map,switchMap,etc.nothing works。该管道似乎不能在valueChanges上工作。我在代码中的其他地方对不同的观察值使用了管道方法,没有任何问题。

我需要在这里使用管道,以便去反弹、映射等。

知道我做错了什么吗?

-编辑--

这是来自Angular Material site的代码示例,在Autocomplete组件上:

代码语言:javascript
复制
ngOnInit() {
   this.filteredOptions = this.myControl.valueChanges
       .pipe(
          startWith(''),
          map(val => this.filter(val))
       );
}

在最后没有订阅,示例可以正常工作。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-03 01:22:18

你需要subscribe来激活Observable

代码语言:javascript
复制
ngOnInit() {
   this.filteredOptions = this.myControl.valueChanges
       .pipe(
          startWith(''),
          map(val => this.filter(val))
       ).subscribe();
}
票数 24
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50506896

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档