【问题标题】:how to get object's some properties async in Angular如何在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 查询以获取所需孩子的所有数据

标签: javascript angular asynchronous


【解决方案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 调用的代码是什么样的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-04
相关资源
最近更新 更多