Ist es möglich Rohre zu haben, die sich wie unreine Rohre verhalten, aber nicht bei jedem gezündeten Ereignis ausgeführt werden sollen. Zum Beispiel möchte ich übersetzen Rohr, die nur auf einer Sprache Drop-down-Wert ÄnderungMischen zwischen reinen und unreinen Rohren in Angular 2
Antwort
ausgeführt werden Verwenden Sie einen Cache. Für jede Übersetzung das Original und die Übersetzung speichern.
Suchen Sie für jeden Aufruf der Pipe in den Cache, wenn es vorhanden ist, verwenden Sie andernfalls die Übersetzung, und speichern Sie sie im Cache.
Verwenden Sie einen injizierbaren Dienst, der den Cache speichert.
Wenn Sprache Dropdown ändern, entfernen die Cache;)
Diese Frage alt ist. Aber da es noch keine akzeptierte Antwort gibt, lass mich auch meinen Gedanken hinzufügen.
Sie können parameters zu der Rohrleitung hinzufügen. Wenn sich der Parameter ändert, ruft die Pipe die Funktion transform
auf.
Wie @Javier sagte, könnten Sie einen injizierbaren Dienst verwenden, um den verschiedenen Übersetzungscache zu speichern. In der Funktion transform
überprüfen Sie den Parameter und verwenden ihn als Schlüssel, um die Übersetzung aus dem Service zu erhalten.