web-dev-qa-db-fra.com

TypeError: search.valueChanges.debounceTime n'est pas une fonction

Je viens d'apprendre angular2. Au moment d'appliquer quelque chose aux changements d'entrée, je reçois l'erreur.

app.ts:

export class AppComponent {
    form: ControlGroup;

    constructor(fb: FormBuilder) {
        this.form = fb.group({
            search: []
        });

        var search = this.form.find('search');
        search.valueChanges
            .debounceTime(400)
            .map(str => (<string>str).replace(' ','‐'))
            .subscribe(x => console.log(x));
    };

 }

Erreur:

enter image description here

Comment résoudre ceci? Est-ce que je manque quelque chose?

Démo Plunker

N.B. Je ne peux rien produire à Plunker car j'écris pour la première fois angular2 sur Plunker. Je n'ai écrit que mon code app.ts chez Plunker. J'ai montré la capture d'écran d'erreur de mon ordinateur local. Je vous serais également reconnaissant si vous me disiez comment gérer le projet angular2 sur Plunker.

49
user1896653

il vous suffit de les importer pour supprimer votre erreur. Vous obtenez une erreur d'exécution car les observables sont fournis par défaut avec seulement quelques opérateurs. Vous devez les importer explicitement comme ceci -

import 'rxjs/add/operator/debounceTime';
import 'rxjs/add/operator/map';

Working example

90
Pardeep Jain

Placez debounceTime (400) dans une fonction pipe ().

exemple

var search = this.form.find('search');
    search.valueChanges
        .pipe(debounceTime(400))
        .map(str => (<string>str).replace(' ','‐'))
        .subscribe(x => console.log(x));
5
Fhulufhelo Mokhomi