在视图Angular4中显示对象

Posted

技术标签:

【中文标题】在视图Angular4中显示对象【英文标题】:Display objects in the view Angular4 【发布时间】:2019-05-28 17:37:25 【问题描述】:
    player0: select_by: "player_id", i: 107993, role: "main", team: "team1"
    player1: select_by: "player_id", i: 108322, role: "main", team: "team1"
    player2: select_by: "player_id", i: 107995, role: "main", team: "team1"
    player3: select_by: "player_id", i: 108033, role: "main", team: "team1"
    player4: select_by: "player_id", i: 108866, role: "main", team: "team1"

如何在视图中显示对象的这种播放? (离子3,角) 例如显示每个玩家的角色

【问题讨论】:

【参考方案1】:

如果您使用 Angular 6.1 或更高版本,您可以使用 keyValue 管道

试试这样的

<div *ngFor="let item of playersObject | keyvalue;>item.key :  item.value.role </div>

如果你想加载一个普通的对象,你可以使用json pipe

<div>playerObject | json</div>

希望它有效 - 编码快乐 :)

【讨论】:

【参考方案2】:

更好的方法是使用管道。请参阅 stackblitz 上的此实现。

管道实现:https://stackblitz.com/edit/ionic-xvt2ha 输出:https://ionic-xvt2ha.stackblitz.io

【讨论】:

【参考方案3】:

您可以使用此 *** 帖子的方法来做到这一点:How to display json object using *ngFor

另一种选择是创建一个辅助数组,将所有玩家放入其中。

@Component(
  selector: "app-selector",
  templateUrl: "your.html",
  styleUrls: ["your.scss"]
)
export class Your-Class implements OnInit 
  public playerArr: Player[];
  ...

  ngOnInit() 
    this.playerArr = [];
    // Iterate your object here named as players and push all players into array
    for(let player in players)
        this.playerArr.push(players[player]);
    
  

  ...

将 json 重建为数组后,您可以轻松地在 html 中使用 *ngFor 循环数组并检索数据。

【讨论】:

【参考方案4】:

对于您的具体问题,请尝试:

<div *ngFor="let player of players; let i = index">
    player["player" + i]["role"] 
<div>

玩家指的是你上面提到的对象。

【讨论】:

以上是关于在视图Angular4中显示对象的主要内容,如果未能解决你的问题,请参考以下文章

Angular4多模块问题

如何使用angular4在ngFor循环中显示嵌套的@component?

angular4-X知识点汇总

Angular4在构造函数中调用一个函数

Angular4最佳实践之unsubscribe

创建一个具有可变长度数组的接口,其中包含 TypeScript/Angular4 中的对象