Angular 9 `*ngFor` not working with `Array` of object

3.6k Views Asked by At

In ts file I have a data like this:

app.component.ts

 this.images = [{
     asset_id: 'asset_id',
     asset_name: 'asset_name'
 }];

and html template is as below:

app.component.html

test {{images}}
<div *ngFor="let img of images; index as i">
  dddd--<span>{{img.asset_id}}</span>
</div>

The result is like the below:

enter image description here

What is the mistake I am doing here?

2

There are 2 best solutions below

0
On BEST ANSWER

You have an array of object with one item. So, try this:

id: {{images[0]["asset_id"]}}
name: {{images[0]["asset_name"]}}

<div *ngFor="let img of images">
    <span>{{ img.asset_id  }}</span>
</div>

I created a sample for you here on Stackblitz

0
On

The test [object Object] is bcz you are trying to print array without iteration.

To print array of object without iteration we need to either use index to access array value or use json pipe to print object or array of object.

// output: test [ { "asset_id": "asset_id", "asset_name": "asset_name" } ]
test {{ images | json }}

Or access using array index

{{ images[0].asset_id }}
{{ images[0].asset_name }}
...