构造函数中的变量集不可见

时间:2018-03-22 19:56:58

标签: angular typescript

我想显示一个简单的玩家列表。现在我从后端服务器获取一个玩家列表。现在可以回来玩家 SpecialPlayers (从玩家继承)。

现在我想在列表中显示" 播放器"当它的播放器和" SpecialPlayer "当它是一个特殊播放器时,我认为我可以通过该代码实现它:

export class Player {
    name: string;
    mode: string;
    constructor() {
        this.mode="Player";
    }
}

export class SpecialPlayer extends Player{
    constructor() {
        super();
        this.mode="SpecialPlayer"; 
    }
}

这就是我的名单:

<table width="100%">
    <tr *ngFor="let player of players">
        <div>{{player.name}}</div>
        <div>{{player.mode}}</div>
    </tr>
</table>

因此显示名称,但模式不显示(或显示但没有内容)...

对我的后端服务器的调用:

loadPlayers(): void {
    this.auth.loadPlayers().subscribe(
      data => {
        this.players= data;
      });
  }

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

您需要从Player

扩展SpecialPlayer类
class SpecialPlayer extends Player

答案 1 :(得分:1)

问题是使用http客户端你的对象实际上不是你的类,它只是一个只支持原生类型的json对象。

您有责任根据从服务器收到的内容在客户端构建它。

更新 - 您必须手动映射结果。我所知道的最简单的方法是使用带有部分参数的构造函数。

请参阅Can Angular `HttpClient` `.get()` generics have non-simple property types? (e.g. other than `string` or `number`)