javascript - 为 *ngFor 内的项目赋值

标签 javascript angular ionic2

我有一个使用 *ngFor 的玩家列表

// Get all players.
getPlayers() {
  this.httpService.getPlayers()
  .subscribe(
    player => {
      this.players = player;

      for (let i in this.players){
        if(this.players[i].Main_Image_ID){
          this.getPlayerIMG(this.players[i].Main_Image_ID);
        }
      }
    },
    error => this.errorMessage = <any>error);
}
<div ion-item *ngFor="let player of players">
  <img *ngIf="player?.playerIMG" width="50" [src]="'data:image/png;base64,'+playerIMG" />
  <img *ngIf="!player?.playerIMG" width="50" src="./assets/images/no-image.jpg" />
  {{player.First_Name}} {{player.Last_Name}}
</div>

API 调用返回的值返回具有多个玩家的对象数组。每个玩家都有一些信息和一个 imageID。在我订阅电话并获取球员后,列表将被填充。然后,我使用 imageID 调用另一个 API 来获取图像。我的目标是在了解所有玩家及其图像 ID 后,用他们的图像填充列表中相应玩家的图像。

// Get image for player.
getPlayerIMG(id) {
  this.httpService.getPlayerIMG(id)
  .subscribe(
    playerIMG => {
      this.player.playerIMG = playerIMG;
    },
    error => this.errorMessage = <any>error);
}

问题是如何将每个 imageID 调用的响应分配给列表(玩家)上的相应项目(玩家)。

谢谢!

最佳答案

最好为播放器编写一个组件,但您可以使用此代码并将播放器传递给函数而不是 Main_Image_ID

for (let i in this.players){
    if(this.players[i].Main_Image_ID){
      this.getPlayerIMG(this.players[i]);
    }
}

// Get image for player.
getPlayerIMG(player) {
   this.httpService.getPlayerIMG(player.Main_Image_ID)
   .subscribe(
      playerIMG => {
        player.playerIMG = playerIMG;
      },
      error => this.errorMessage = <any>error);
}

关于javascript - 为 *ngFor 内的项目赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41356254/

相关文章:

Angular 2。检查访问后如何隐藏(不呈现)菜单中的链接?

Android Ionic Cordova - 错误 : Failed to get absolute path to installed module

javascript - 如何使用混合移动应用程序的 ajax 和 json 登录

javascript - 如何在 iframe 中加载和执行 jQuery 内容?

angular - 将变量从一个 typescript 文件导入另一个

javascript - 如何通过Angular2中的链接发送基于视频上传的放置请求

javascript - 处理 400 后运行时错误

javascript - 属性 'x' 是私有(private)的,只能在类 'y' 内访问

javascript - 函数范围与 Javascript 对象中的代码顺序

javascript - 在特定模式之后匹配 ",",同时排除该模式。 (在 JavaScript 中回顾)