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)
