【发布时间】:2020-07-01 16:17:31
【问题描述】:
我需要从角度查找省份名称,所以我编写了一个管道服务来查找名称,代码这是我的代码管道
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() 不是异步的,你知道吗?
【问题讨论】:
-
请阅读规范的stackoverflow.com/q/14220321/3001761 - 在这种情况下,您可以返回一个observable 值并使用
| async来解决它。
标签: angular typescript pipe frontend angular-pipe