angular2 Observable 属性 'debouceTime' 在类型 'Observable<any>' 上不存在

标签 angular rxjs observable angular2-forms

我使用"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"

为什么会出现这样的错误--

Property 'debouceTime' does not exist on type 'Observable'.

最佳答案

确保您已在 main.ts (引导应用程序的位置)中启动它

import "rxjs/add/operator/map";
import "rxjs/add/operator/debounceTime";
...

或一次全部

import "rxjs/Rx";

延长

a working example

//our root app component
import {Component, EventEmitter, ChangeDetectorRef} from '@angular/core'
import {Observable} from  "rxjs/Rx";
@Component({
  selector: 'my-app',
  providers: [],
  template: `
    <div>
      <h2>Hello {{name}}</h2>

        <div>debounced message: {{message}}</div>
    </div>
  `, 
  directives: []
})
export class App {

  protected message: string;
  protected emitter = new EventEmitter<string>();
  public obs: Observable<string>;

  constructor() {
    this.name = 'Angular2 (Release Candidate!)'

    this.obs = this.emitter
      .map(x => x)
      .debounceTime(1200)
      ;

    this.obs.subscribe(msg => this.message = msg);
  }

  ngOnInit(){
    this.emitter.emit("hello after debounce");
  }
}

当在 main.ts 中我们有:

//main entry point
import {bootstrap} from '@angular/platform-browser-dynamic';
import {App} from './app';

import "rxjs/Rx"; 

bootstrap(App, [])
  .catch(err => console.error(err));

查一下here

关于angular2 Observable 属性 'debouceTime' 在类型 'Observable<any>' 上不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38005762/

相关文章:

angular - 如何在 Angular2 中切换布局

angular - 如何处理 Angular 延迟订阅

javascript - 将一个 RxJS observable 的结果传递到下一个连续的 observable

angular - 在 Angular 6 中顺序执行 http 请求

angular - 无法读取未定义的属性 'unsubscribe'(rxJS - 订阅)

javascript - 在下拉选择中动态更改 iFrame src

Angular 4 函数使用 papaparse 丢失上下文

c# - 增加 Angular 2+ 和 ASP.NET Core WebAPI 应用程序中的超时

angular - 使用lettable的publishLast运算符时如何获取ConnectableObservable

Angular 2 - 订阅 Observable.fromEvent 错误 : "Invalid event target"