Home > Net >  Translate label of splitButton - PrimeNG
Translate label of splitButton - PrimeNG

Time:11-25

I'm trying translate items from "p-splitButton" but i can't because the "items" is an object. How can i do it?

[model]="items | translate"

app.component.html

<p-splitButton
  label="Save"
  icon="pi pi-plus"
  (onClick)="save('info')"
  [model]="items | translate"
></p-splitButton>

app.component.ts

import { Component} from '@angular/core';
import {MenuItem} from 'primeng/api';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
})
export class AppComponent { 
    items: MenuItem[];
    
    constructor() {}
    
    ngOnInit() {
        this.items = [
            {label: 'Example 1', icon: 'pi pi-info', url: 'http://angular.io'},
            {label: 'Example 2', icon: 'pi pi-info', url: 'http://angular.io'},
        ];
    }
}

CodePudding user response:

You can use an impure pipe so that changes in the object are detected and then translate the label and reassign the value this

@Pipe({
  name: 'translate',
  pure: false,
})
export class TranslatePipe implements PipeTransform {
  transform(value: MenuItem[]): any {
    value.forEach(val => val.label = translateFn(val.label))
    return value
  }
}
  • Related