Angular 2使用promise更新ngFor内的值并未显示正确的值

时间:2017-04-23 23:03:31

标签: angular typescript promise ngfor

我得到了第一个元素列表,我在服务视图中显示这些元素。但是在我获得数组后,我需要使用新的promise的结果更新内部元素,但这不起作用。请参阅随附的plnkr以查看问题。 这是服务访问:

this.teamsService.getTeams()
  .then(teams=> {
    teams.forEach(team => team.name = 
    this.namesService.getName(idx++));
    this.teams = teams
  });

这是观点:

<div *ngFor="let team of teams">
  <p>Team {{team.name.value}}</p> 
</div>

https://plnkr.co/edit/TWyv7DbPyQjehzAs457P?p=info

1 个答案:

答案 0 :(得分:3)

问题在于你试图将promises直接绑定到视图,并且它不会像那样工作,因为“某些东西”需要解析这些promise以获得结果.Angular有一个名为“async”的管道来解析observables和承诺,所以我在这里使用异步管道编辑你的plunkr将解析名称。另外,idx应该从1开始而不是0我猜是因为你的名字数组没有任何id == 0的团队。 你的主要问题是这部分

{{(team.name | async)?.value}}

这是https://plnkr.co/edit/BdzvLBYNjD3LB2GjrAKe?p=preview