如何在Angular中异步获取对象的一些属性
Posted
技术标签:
【中文标题】如何在Angular中异步获取对象的一些属性【英文标题】:how to get object's some properties async in Angular 【发布时间】:2019-09-03 07:28:33 【问题描述】:我有一个 Json 对象数组,我通过 Http 调用从服务器获取,假设数组是
var someArray=[
id:1,name:'someName',status:'no-data',
id:1,name:'someName',status:'no-data',
id:1,name:'someName',status:'no-data']
我已经使用 ngFor 将数据渲染成角度表格
<tr *ngFor="let it of someArray">
<td>it.id</td>
<td>it.name</td>
<td>it.status</td>
</tr>
我想知道如何获取 someArray
异步的 status
属性(目前我有 no-data
但它的值可以说是 'live' )以便在第一个 API 调用中它应该获取 someArray 渲染它表,然后它获取数组异步的每个对象的状态。
请向我推荐一些文档或帮助将不胜感激:)
【问题讨论】:
如果我没记错的话,您应该在后端执行此操作以获取具有状态和渲染数据的对象。但如果你想用 Angular 实现它,你应该在你的someArray
上做一个 map
并调用你的后端
@AbderrahimSoubaiElidrissi 我在 BackboneJs 中研究过这种东西,那里有集合和模型,你能分享一些文档吗?
如果你使用 MongoDB 和 mongoose,请考虑使用 populate() 方法 mongoosejs.com/docs/populate.html。如果不尝试进行 JOIN 查询以获取所需孩子的所有数据
【参考方案1】:
我不完全确定你在这里问什么,但是你可以在 for 循环中使用一个异步管道
<tr *ngFor="let it of someArray | async">
<td>it.id</td>
<td>it.name</td>
<td>it.status</td>
</tr>
【讨论】:
我的意思是我想在其他属性已经呈现在 table 之后进行单独的 API 调用以获取status
属性。它应该显示加载状态,然后在 API 调用后显示实际值。 @Chris,你明白我的意思吗?
对不起,不 - 我不明白你在问什么。您只想在加载数据时显示加载状态?
status 在这里有值no-data
,我想在运行时嵌套API调用后从后端获取它的值(在db上是status:live
)。 @克里斯
如何进行嵌套的 ajax 调用?
您只向我们展示了一个包含 4 个项目的普通数组和一小段带有循环的 HTML。我们不知道您的 ajax 调用的代码是什么样的以上是关于如何在Angular中异步获取对象的一些属性的主要内容,如果未能解决你的问题,请参考以下文章