首页 > 解决方案 > 从地图角度获取属性

问题描述

如何从地图中获取属性并使用 Angular 将其显示在表格中?当我显示时,我得到 [object Object]。如果使用 property.first 我什么也得不到。

//model

export interface UserModel { 
       room: Map<number,number> 
}


//service

export class UserService {
  user: UserModel;

  newUser: UserModel = {
    room: new Map<number,number>(),
....}}


//html
 <tbody>
      <tr *ngFor="let user of $users | async">
        <td>{{user.room}}</td> // user.room.first???
      </tr>
      
 </tbody>

请帮帮我!

标签: angulartypescript

解决方案


您的 * ngFor概念在这里是错误的。如果你想使用 *ngFor 它基本上是用于迭代数组。所以你需要使用一个数组,你不能在 *ngFor 中使用 Map。

如果您的数据类型是 Map,则必须将其转换为数组。

如果您想在此问题中获得更详细的解决方案,请提供您想要的最终结果。

根据我的理解,您想打印与表中的键映射的值。

所以你需要将map的键转换成一个数组。为了实现这一点,请使用:

this.keys = Object.keys(this.user)

在 .ts 文件中添加这一行,现在在 html 中添加以下代码。

<tbody>
  <tr *ngFor="let keyof keys| async">
    <td>{{user[key]}}</td> // user.room.first???
  </tr>

我希望这是你的要求。你可以完成这件事。


推荐阅读