Nous sommes en train de créer un tube de traduction en utilisant Angular 2. La syntaxe de modèle attendue devrait ressembler à ceci:
{{"lbl_translate": translate}}
Mais, selon la documentation,
Angular exécute un tuyau pur uniquement lorsqu'il détecte un changement pur du valeur d'entrée
Donc, cela ne serait pas mis à jour lorsque la langue est modifiée dans l'application.
La question qui se pose est la suivante: est-il possible de transmettre le langage à ce canal de manière implicite en tant que nouvelle entrée? Sans avoir à le spécifier explicitement comme suit: {{"lbl_translate": translate:"en"}}
Serait-il possible de passer implicitement la valeur "en"? Existe-t-il un meilleur moyen de déclencher ce changement?
Réponses:
0 pour la réponse № 1Comme mentionné par Günter, il n'est pas possible de tirer un tuyau pur sans changer les entrées. Ceci est voulu pour que les tuyaux purs restent perforés.
Nous y sommes allés en utilisant des pipes impures pour nos besoinscomme cela a été fait dans le paquet ng2-translate. Cela a un impact négatif sur les performances, mais répond bien aux besoins. Mais il est important de garder la fonction aussi simple que possible à l'intérieur du tuyau pour que l'application continue à fonctionner à une vitesse acceptable.