【发布时间】:2020-12-30 22:05:27
【问题描述】:
当新产品到货时,我的表格没有更新,我必须重新加载才能看到结果,这不是我想要的。我的预期结果:当从后端添加新产品到前端时必须更新表,这是我的代码:
Product.service.ts
getProducts(): Observable<Products[]> {
return this.http.get<Products[]>(this.BASE_URL);
}
Admin-products.component.ts
ngOnInit(): void {
this.productService.getProducts().subscribe((data) => {
this.listOfData = data;
console.log("data", data);
});
}
Admin-products.component.html
<nz-table
#sortTable
[nzData]="listOfData"
nzTableLayout="fixed"
nzShowPagination
nzShowSizeChanger
>
<thead>
<tr>
<th *ngFor="let column of listOfColumn">{{ column.title }}</th>
</tr>
</thead>
<tbody>
<tr *ngFor="let data of sortTable.data">
<td>{{ data.name }}</td>
<td>{{ data.price }}</td>
<td>{{ data.type }}</td>
<td>{{ data.category }}</td>
<td>{{ data.subCategory }}</td>
<td>{{ data.amount }}</td>
</tr>
</tbody>
</nz-table>
我不知道我在这里遗漏了什么,也许问题是我在 nodejs 中的服务器与 express 这是我的服务器响应:
Nodejs 服务器
router.get("/products", (req, res) => {
mysqlConnection.query("SELECT * FROM products", (err, rows, fields) => {
if (!err) {
res.json(rows);
} else {
console.log(err);
}
});
});
有什么想法吗?
【问题讨论】:
-
所以当您打开页面时可以看到可用的产品,并且您希望它在添加新产品时立即更新?
-
当我做对了,你想在后端有新条目时更新你的前端??目前你的前端无法知道这一点。您只在 onInit 上调用一次后端。您可以制作一个“刷新”按钮来调用后端并更新数据。或者对后端进行轮询的东西。或者你搜索这样的东西:stackoverflow.com/questions/51534330/…
-
@xDrago 是的,这正是我想要的。
-
@pL4Gu33 谢谢我会检查答案。
标签: angular observable