Manière correcte de s'abonner à valueChanges Angulaire 2

J'ai été bidouiller avec des formes réactives et valueChanges abonnement Angulaire 2. Je ne t très bien pourquoi certaine forme de souscrire semblent ne pas être autorisé.

this.form.get('name').valueChanges /* <- doesn't work */
  .do(changes => {
    console.log('name has changed:', changes)
    });
  .subscribe();

this.form.get('title').valueChanges.subscribe( /* <- does work */
  changes => console.log('title has changed:', changes)
);

Cette plunker reproduit le problème (ouvert DevTools console pour voir le message d'erreur):

ZoneAwareError {pile: "Erreur: Uncaught (promesse): TypeError: Cannot se...g.com/[email protected]/dist/zone.js:349:25) []", un message: "Uncaught (promesse): TypeError: Cannot set ina...de minerai.umd.js:8486:93)↵ au Tableau.forEach (native)", originalStack: "Erreur: Uncaught (promesse): TypeError: Cannot se...ps://unpkg.com/[email protected]/dist/zone.js:349:25)", zoneAwareStack: "Erreur: Uncaught (promesse): TypeError: Cannot se...g.com/[email protected]/dist/zone.js:349:25) []", nom: "Erreur"...}

Est le premier modèle (avec do) n'est pas illégale en effet?

Pourquoi do être illégal? Vous n'avez pas besoin, vous pouvez passer le rappel à subscribe(...) à la place. Le Plunker ne fonctionne pas pour moi (je ne sais pas pourquoi, ont depuis un certain temps et, par conséquent, ne peut pas étudier)
C'est exactement ce qui m'intrigue, c': pourquoi serait-il illégal? Le Plunkr n'est pas toujours comme moi soit - je mets à jour mon post avec l'erreur de la DevTools.
Votre Plunker avez manqué l'importation du do de l'opérateur. Voir aussi stackoverflow.com/questions/34515173/...
Une sorte de bon point, l'ajout de import 'rxjs/add/operator/do'; n'a pas aider à bien.
Difficile à dire, je ne sais pas comment déboguer avec Plunker pas de travail. Je ne suis pas à l'aide de la Machine a ecrire sur ma machine. Peut-être quelqu'un d'autre a une idée.

OriginalL'auteur user776686 | 2017-01-16