我正在使用primeng数据表来预览数据。
我正在使用服务从json获取数据。
this.searchUserService.getResultART().then(data => {
console.log(data); // data is OK
for (let i = 0; i < data.length; i++) {
this.usersList.push(new User(data[i]));
}
console.log("user list ", this.usersList); // list OK
});
在HTML中我创建了我的数据表
<p-dataTable [value]="usersList" selectionMode="single" [(selection)]="selectedUser" dataKey="uid" (onRowSelect)="selectedUserDetails($event)" styleClass="tab-result" >
<p-column field="uid" header="UID" [sortable]="true"></p-column>
<p-column field="firstName" header="First Name" [sortable]="true"></p-column>
<p-column field="lastName" header="Last Name" [sortable]="true"></p-column>
<p-column field="buildingAdress" header="Address" [sortable]="true"></p-column>
<p-column field="profile" header="Role" [sortable]="true"></p-column>
</p-dataTable>
屏幕上显示的是空表,没有记录消息。
Console.log显示正确的数据,我不知道为什么表仍然是空的
答案 0 :(得分:0)
我发现这种情况发生了很多,因为组件没有意识到输入已经改变,因为它没有,只有输入的属性有。
在回调中,尝试使用新映射的数据结果在现有数组上调用Array.concat()
来创建新数组。这应该触发组件中的更改检测,因为现在传入输入的引用已更改。
this.searchUserService.getResultART().then(data =>
this.usersList = this.usersList.concat(data.map(x => new User(x)));
);