我需要从角度查找省份名称,所以我编写了一个代码查找服务管道,代码是我的代码管道
export class ConvertStatePipe implements PipeTransform {
constructor(private callData: CallDataService) {}
transform(value: string): any {
let nameProvince = '';
this.callData.getAllProvinces().subscribe( (res) => {
for (const item of res.provinces) {
if (item.provinceCode === value) {
nameProvince = item.name;
}
}
});
return nameProvince;
}
这里我叫CallDataService,来自CallDataService,我有一个名为getAllProvinces的函数,我现在从设置的API中提取所有省份,因为我需要从HTML查找省份名称并返回名称 这是我的HTML代码
<div class="mb-24 terminal-item" fxFlex="33.33333%">
<strong>Province</strong>
{{userData.state | convertState }}
</div>
但是我无法重调变量nameProvince,因为这是未定义的,而且我认为因为this.callData.getAllProvinces()不异步,您有什么主意吗?
答案 0 :(得分:-1)
- 尝试如下更新:
{{userData.state | async | convertState }}
//在您的管道中
export class ConvertStatePipe implements PipeTransform {
constructor(private callData: CallDataService) {}
transform(value: string): any {
let nameProvince = '';
// update below to return observable
nameProvince = this.callData.getAllProvinces().pipe( map((res) => {
let value = '';
for (const item of res.provinces) {
if (item.provinceCode === value) {
value = item.name;
}
}
return value;
}));
return nameProvince;
}