#angular #pipe
Вопрос:
у меня есть этот номер, полученный из моего api
"vlr": 1749109.14
и я должен сформировать, чтобы показать
174.910.914
Я попытался использовать pipe, но не смог получить желаемое форматирование.
есть ли способ получить это форматирование, или было бы лучше изменить значение, поступающее из api?
Комментарии:
1. Вы уверены, что всегда будете получать XXX.XXX.XXX ? Может у вас есть, например, XX.XXX.XXX ?
Ответ №1:
По моему мнению, у вас есть 2 решения :
-
- Создайте функцию в службе, в которую вы получаете эти данные, и отформатируйте ее непосредственно в службе.
-
- Создайте канал и рассчитайте значение.
- (название услуги)
getData(): Observable<any> {
return this.http.get<any>(...).pipe(
map(res => this.formatValue(res.vlr))
);
}
private formatValue(value: number): string {
let temp = value.toString().replace('.', '');
return temp.match(/.{1,3}/g).join(".");
}
(компонент)
vlr: string;
constructor(service: ServiceName) {
this.service.getData().subscribe(res => {
console.log(res);
this.vlr = res.vlr;
});
}
- тс
vlr = 1749109.14;
HTML
<span>{{ vlr | formatVlr }}</span>
(труба)
transform(value: number): string {
let temp = value.toString().replace('.', '');
return temp.match(/.{1,3}/g).join(".");
}