angular - 添加新项目后未更新可观察表
问题描述
我为锻炼制作了简单的 CRUD 应用程序,但自动更新表有问题。
我从 API 调用数据,并将新数据发布到 API。在应用程序中,我使用 ng-bootstrap 显示表格列表,并且为了添加新项目,我使用引导模式框。
在我service
这里是我获取所有用户并添加新用户的代码
getUsers(): Observable<UserModel[]> {
return this.httpClient.get<UserModel[]>(environment.BASE_URL + this.apiurlAllUsers).pipe(
tap(data => console.log(data)),
catchError(this.handleError)
);
}
updateUser(formData) {
this.httpClient.post(environment.BASE_URL + "user/add/", formData)
.subscribe(response => this.getUsers(), error => console.log(error));
}
这是来自的代码user.component
getUsersInList() {
this.allUsers = [];
this.userService.getUsers().subscribe((data: any[]) => {
this.collectionSize = data.length;
this.allUsers = data;
});
}
//passing formData from modal box to service
modalRef.result
.then(result => {
this.userService.updateUser(result);
})
.catch(error => {});
}
刷新页面后,新数据在表中,但是不刷新如何获取呢?请问有人可以解释我做错了什么吗?谢谢
解决方案
使用async
管道将请求结果获取到 UI。
<div *ngFor="let user of getUsers() | async"> ...
推荐阅读
- angularjs - 每次使用 $route.reload() 时,如何防止我的自定义指令被编译/执行
- swift - 我可以知道代码有什么问题吗,因为它一次又一次地调用函数并导致无限循环
- office-js - 获取用户编辑excel文档的信息
- pandas - pandas 所有指数的平均 bin 值
- java - Spring boot JPA - 延迟加载不适用于一对一映射
- powershell - 在 PowerShell 中使用 Where-Object 计数过滤 (xml-)Data ...
- php - array_column 在 PHP 5.6 中返回空数组
- python - 抽象 DGRAM 套接字,C 服务器和 Python 客户端,连接被拒绝
- java - 如何从 guava cacheloader 获取缓存的值并更新值而不更改缓存中的值?
- java - 如何根据列值向arraylist显示数据