【问题标题】:transform array expression into Object angular将数组表达式转换为对象角度
【发布时间】:2018-06-14 05:34:41
【问题描述】:

我有这个从 http 请求返回的 json

[
  {
        "player": {
            "1100": {
                "name": "Andy",
                "position": "Keeper"
            },
            "1927": {
                "name": "Cole",
                "position": "benchwarmer"
            },
            "2399": {
                "name": "Derrick",
                "position": "Striker"
            },
            "2900": {
                "name": "Cole",
                "position": "normal supporter"
            }
        },
        "substitutions": [
            {
                "playerin": 1100,
                "playerout": 1927,
                "time": 58
            },
            {
                "playerin": 2399,
                "playerout": 2900,
                "time": 58
            }
        ]
    }

]

这是我的ts

Object = Object;

this.http.get('http://example.com/example.php?matchid='+this.matchId)
            .map(res => res.json())
            .subscribe(res => { 
              this.substitutes = res[0].substitutions;
              this.players = res[0].players;


 });

在循环替换时,我希望它显示玩家姓名也从中获取,我需要将 playerin playerout 数据更改为对象,但未能这样做。这是我返回未定义玩家的示例失败代码

//failed 1
<div *ngFor="let subH of substitutes">
    {{players[subH.playerin].name}}
    </div> 
//failed 2
<div *ngFor="let subH of Object.keys(substitutes)"> 
    {{players[subH.playerin].name}}
    </div> 

我怎样才能实现它?

【问题讨论】:

  • res 根据您的 json 似乎是一个数组,而不是一个对象
  • 我的坏@SurajRao,我已经编辑了它,因为它是从原始文件复制粘贴编辑以简化它。问题是我不能调用 player[subH.playerin] 因为 playerin 还不是一个对象。这也是我想的可能是错的
  • @SurajRao 不,完全不同
  • ok,你能把all的相关代码加进去吗?

标签: angular ionic-framework


【解决方案1】:
this.substitutes = res.substitutions;
this.players = res.players;

应该是

this.substitutes = res[0].substitutions;
this.players = res[0].player;

Working Example

【讨论】:

  • @PardeepJain 我的错,我已经编辑了它,因为它是从原始文件复制粘贴编辑以简化它。问题是我不能调用 player[subH.playerin] 因为 playerin 还不是一个对象。这也是我想的可能是错的
  • 是的,我做到了..它在我的网站上不起作用..真正的文件非常复杂,尽管它包含数千行。我之前曾给玩家[一些表情]打过电话,它正在工作......但是当我在另一个片段中调用它时,它变得不确定......
  • 哦,我刚刚通过在问题中看到您的场景来发布答案,这在我的示例中运行良好
  • 离子段在同一个文件同一个组件上
  • @PardeepJain the id of player : 1100, 1192 是一个对象,这就是为什么我在调用 {{players[subH.playerin]?.name}} 时变得未定义的原因
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-01
  • 2018-07-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多