Del og erstatt streng i Angular 8 HTML
Jeg mottar data fra REST API. For navneparameteren vil jeg dele den ved 2330 og gi linjeskift. Eksempel: Jeg har navn: ABCD 2330 Dette er mitt navn Jeg vil gi forskjellig stil til de delte strengene, og utdataene på skjermen min skal være:
ABCD 2330
This is My Name // this will be bold
og ikke
ABCD 2330 This is My Name
Gitt kompleksiteten til objektet mitt, tror jeg ikke jeg kan legge denne operasjonen i ts-filen. Jeg binder dataene slik: <li>{{data.name}}</li> kan jeg bruke en pipe som split, og hvordan ville jeg lagt til /n etter splitten og slått sammen strengen igjen, og hvordan kan jeg også gi forskjellig stil i den samme
Svar #1
Kanskje du kan prøve slik som nedenfor
Rør
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({name: 'texttransform'})
export class TextTransformPipe implements PipeTransform {
transform(value: string): string {
const splitBy = '2330'
const splittedText = value.split( splitBy );
return `${ splittedText[0] } ${ splitBy } <br> <b>${ splittedText[1] }</b>`;
}
}
Og i malfilen
<ul>
<li *ngFor="let data of receivedData" [innerHTML]="data.name | texttransform"></li>
</ul>
Arbeider stackblitz
Svar #2
For en enkel brukstilfelle kan det hende det ikke er nødvendig å legge til et rør.
Jeg har gjort følgende
I .ts
myName;
// data received
handleData(data) {
var originalName = data.name;
this.myName = originalName.split("name")[0]
}
I .html
{{myName}}
