Ker*_* Hu 20 observable rxjs angular2-forms angular
我使用"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}); }; }
)});}
Run Code Online (Sandbox Code Playgroud)
我可以找到文件 "/projection_direction/node_modules/rxjs/operator/debounceTime.js"
为什么会有这样的错误 -
属性'debouceTime'在'Observable'类型上不存在.
Rad*_*ler 44
确保你已经在main.ts (应用程序被引导的地方)启动了
import "rxjs/add/operator/map";
import "rxjs/add/operator/debounceTime";
...
Run Code Online (Sandbox Code Playgroud)
或者一下子
import "rxjs/Rx";
Run Code Online (Sandbox Code Playgroud)
延伸
//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");
}
}
Run Code Online (Sandbox Code Playgroud)
我们在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));
Run Code Online (Sandbox Code Playgroud)
检查它在这里
use*_*027 30
对于rxjs 6之后来到这里的每个人:
你现在需要使用pipe():
什么是
myObservable$
.debounceTime(500)
.subscribe(val => {
// debounced stuff
})
Run Code Online (Sandbox Code Playgroud)
现在需要:
myObservable$
.pipe(debounceTime(500))
.subscribe(val => {
// debounced stuff
})
Run Code Online (Sandbox Code Playgroud)
https://www.learnrxjs.io/operators/filtering/debouncetime.html
| 归档时间: |
|
| 查看次数: |
24109 次 |
| 最近记录: |