我使用 "angular2 webpack" 和 "angular2/form,Observable" ,但遇到错误,需要帮助..
有一个自定义表单验证器 -
import {Observable} from 'rxjs/Rx';
import {REACTIVE_FORM_DIRECTIVES,FormControl, FormGroup, Validators} from '@angular/forms';
emailShouldBeUnique(control:FormControl) {
return new Observable((obs:any)=> {
control.valueChanges
.debouceTime(400)
.distinctUntilChanged()
.flatMap(term=>return !this.userQuery.emailExist(term))
.subscribe(res=> {
if (!res) {obs.next(null)}
else {obs.next({'emailExist': true}); }; }
)});}
我找不到文件 "/projection_direction/node_modules/rxjs/operator/debounceTime.js"
为什么会有这样的错误 -
属性'debouceTime'在类型'Observable'上不存在 .
7 回答
我最近有同样的问题,在我做了之后解决了:
而且我认为Angular 5也需要添加管道
假设您必须使用 debounceTime() 与多个RxJS运算符,我建议使用 .pipe() 运算符
对我来说,答案是使用管道:
另外更改导入:
至:
是的,我正在关注一个教程,所以希望这会有所帮助
确保你已经在main.ts(应用程序被引导的地方)启动了
或者一下子
延伸
有a working example
我们在main.ts有这样的工作:
检查一下here
对于rxjs 6之后来到这里的每个人:
您现在需要使用
pipe()
:什么是
现在需要:
https://www.learnrxjs.io/operators/filtering/debouncetime.html
你这里有一个错字 . 这是debounceTime,而不是debouceTime :)
在angular-cli 1.6.8生成项目中使用angular v5.2.6和rxjs v5.5.6时,我最近遇到了类似的错误 . 我最初有:
因为我订阅了一个控制valueChanges事件,所以我一直收到错误,直到我放入
我希望这有帮助!