在这种情况下我该如何使用管道
How can i use pipe in this case
我有这个号码来自我的 api
"vlr": 1749109.14
而且我必须合成才能显示
174.910.914
我尝试使用管道,但无法获得我想要的格式。
有没有办法获得这种格式,或者最好更改来自 api 的值?
根据我的说法,您有 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;
});
}
- ts
vlr = 1749109.14;
html
<span>{{ vlr | formatVlr }}</span>
(管道)
transform(value: number): string {
let temp = value.toString().replace('.', '');
return temp.match(/.{1,3}/g).join(".");
}
我有这个号码来自我的 api
"vlr": 1749109.14
而且我必须合成才能显示
174.910.914
我尝试使用管道,但无法获得我想要的格式。
有没有办法获得这种格式,或者最好更改来自 api 的值?
根据我的说法,您有 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;
});
}
- ts
vlr = 1749109.14;
html
<span>{{ vlr | formatVlr }}</span>
(管道)
transform(value: number): string {
let temp = value.toString().replace('.', '');
return temp.match(/.{1,3}/g).join(".");
}