使用@input将对象数组从角度模板传递到另一个组件

时间:2019-04-11 07:52:25

标签: javascript angular6

我正在尝试通过角度模板将一组对象从一个组件传递到另一个组件。

 <div *ngFor="let item of data">
    <div class="col-xl-3">
      <top-users  usersData ={{[item]}}> </top-users>
    </div>
  </div>

这里应该是

[{id:1, name: 'Ahmed'}, {id:2, name:'Mohammed'}]

数据是对象数组

[    
 [{id:1, name: 'Ahmed'}, {id:2, name:'Mohammed'}],
 [{id:3, name: 'Ahmed'}, {id:4, name:'Mohammed'}],
 [{id:5, name: 'Ahmed'}, {id:6, name:'Mohammed'}]
]

当我通过@input参数接收到变量时,我得到了字符串的结果typeof,看起来像这样

[object Object],[object Object]

我试图解析Json并给我这个错误

ERROR SyntaxError: Unexpected token o in JSON at position 1

我应该怎么做才能获得正确的对象数组?

1 个答案:

答案 0 :(得分:2)

您需要按以下方式传递数据:

<div *ngFor="let item of data">
    <div class="col-xl-3">
      <top-users  [usersData]="item"> </top-users>
    </div>
  </div>

您将在子组件中收到以下消息:

@Input() usersData;

usersData将如下所示:

[{id:1, name: 'Ahmed'}, {id:2, name:'Mohammed'}]