Angular 6'da template yerine TypeScript'te translate pipe nasıl kullanılır


Angular'ın translate borusunu TypeScript mantığı içinde kullanmam gereken bir gereksinimim var.

Bu soruyu gördüm: TS’de pipe nasıl kullanılır, HTML’de değil

Bu linki de kontrol ettim: Angular Uygulamanızı Pipes ile Çevirin

Yukarıdaki sorunun cevabı çalışıyor ama o durumda boru özel olarak yapılmıştı. Ama benim durumumda translate borusu yerleşik. Metinler için dilleri değiştiriyor. Şablonum şöyle:

<my-component
  [myLabel1]="label1 | translate"
  [myLabel2]="label2 | translate"
  [myLabel3]="label3 | translate"
  [myLabel4]="label4 | translate"
  [myLabel5]="label5 | translate"
  [myLabel6]="label6 | translate">
</my-component>

Bu kadar çok yönergeden kaçınmak için bir arayüz oluşturmayı ve tüm yönergeleri şöyle bir nesne olarak sağlamayı düşündüm:

<my-component
  [toChildAsInput]="labelObject">
</my-component>

Bir arayüz oluşturdum: labelconfig.ts

export interface LabelConfig {
    label1: string;
    label2: string;
    label3: string;
    label4: string;
    label5: string;
    label6: string;
}

Benim typescript'im şunlardır:

import { LabelConfig } from './labelconfig';
labelObject:LabelConfig ;
ngOnInit() {
  labelObject.label1="Hello";  // how to apply pipe here
  ...
}

Ben burada yalnızca takılı kaldım. Aynı pipe'ı TypeScript içinde nasıl uygularım? Lütfen yardım edin. Bu mümkün mü yoksa değil mi?

Cevap #1

Eğer boruyu modül seviyesinde sağladıysanız, o zaman bunu sadece enjekte edin ya da bileşen seviyesinde providers içerisinde sağlayın

providers: [ TranslatePipe ]

constructor(private translate: TranslatePipe) {}

Ve bileşende enjekte edilmiş örnekte basitçe transfom çağrısı yapın

this.data = this.translate.transform(value)