Reputation: 2102
I get html entities from json file, like: ’
How can I unescape it in html component?
I created custom pipe, but it works only for entities like &
:
import { Pipe, PipeTransform } from '@angular/core';
import {unescape} from 'lodash';
@Pipe({
name: 'unescape'
})
export class UnescapePipe implements PipeTransform {
transform(value: any, args?: any): any {
return unescape(value);
}
}
Upvotes: 9
Views: 9727
Reputation: 1299
Still the same : use replace or encodeUri of JavaScript and escape every chars you don't want. The other way is to create a Pipe like you are doing based on regex/replace/escape functions ;)
escape(htmlInput) {
htmlInput.replace("&", "and")
}
escape
is now encodeUri and you can also use contains to verify first if you have a matched pattern :)
Upvotes: 1
Reputation: 2102
The solution, create next custom pipe:
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({
name: 'unescape'
})
export class UnescapePipe implements PipeTransform {
transform(value: any, args?: any): any {
const doc = new DOMParser().parseFromString(value, 'text/html');
return doc.documentElement.textContent;
}
}
Upvotes: 9