在Angular中打印对象数组的多种方法与实例

488 阅读1分钟

本教程展示了打印对象数组的多种方法。一种方法是在Angular中使用json管道。另一种方法是使用对象属性符号

例如,我们在Angular的typescript组件中声明了一个对象数组。

  roles: { id: number, name: string }[] = [    { "id": 0, "name": "admin" },    { "id": 1, "name": "user" },    { "id": 2, "name": "superadmin" }  ];

在HTML中使用angular模板语法打印对象

{{roles}}

会在用户界面上打印[object Object]的列表,如下所示。

 [object Object],[object Object],[object Object]

使用ngFor指令,我们将打印对象

  
     <ul>
    <li *ngFor="let role of roles">{{role}}</li>
</ul>

输出结果显示在用户界面上

[object Object]
[object Object]
[object Object]

如何将对象打印到屏幕或浏览器到控制台?

在Angular中使用json管道

Angular有内置的json管道,可以打印出json代码的美化效果。

在Html代码中,json管道的使用方法如下

{{roles|json}}

并打印出json

[     { "id": 0, "name": "admin" },    { "id": 1, "name": "user" },     { "id": 2, "name": "superadmin" } ]

另一种方法是用ngFor迭代并打印一个对象。

<ul>
    <li *ngFor="let role of roles">{{role |json}}</li>
</ul>

使用对象符号打印对象的数组

在Javascript中,可以用两种语法来检索对象的值。

  • 使用对象点符号语法。 使用点符号语法访问属性,如下所示

语法

object.property

下面是一个示例代码

<ul>
    <li *ngFor="let role of roles">{{role .id}}- {{role.name}}</li>
</ul>
  • 使用一个带有对象方括号的键

在这个例子中,通过将键传递给方括号来检索对象的值。

语法

object["key"]

下面是一个示例代码

<ul>
    <li *ngFor="let role of roles">{{role["id"]}}- {{role["name"]}}</li>
</ul>

在上述两种情况下,输出如下所示

0- admin
1- user
2- superadmin

在组件中使用JSON.stringify来打印数组对象。

创建了一个getter。在typecript组件中使用JSON.stringify对数组对象进行反序列化。

  get printroles() { return JSON.stringify(this.roles) };

在一个HTML组件中调用getter。

{{printroles}}