我使用"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";
延长
//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/