在Angular 2中,我从后端获得响应…一个im在html文件中的*ngFor中循环它
在Angular 2中,删除在Angular 2中,我从后端获得响应…一个im在html文件中的*ngFor中循环它,angular,spring-boot,Angular,Spring Boot,在Angular 2中,删除*ngFor中的项目后(该项目在后端被删除),该项目在视图中仍然可见。。。DOM没有更新。。。页面刷新后,该项目在视图中不可见…从后端删除该项目后,您需要执行以下两种操作之一。 1.调用API从后端获取项目。 2.如果确实不希望后端调用在删除后获取新列表,请至少从列表中拼接/切片该项,以便*ngFor不会将该项包含在列表中 否则,在刷新列表之前,您将在列表中保留该项。请尝试以下操作: this._service.delete(item)
*ngFor
中的项目后(该项目在后端被删除),该项目在视图中仍然可见。。。DOM没有更新。。。页面刷新后,该项目在视图中不可见…从后端删除该项目后,您需要执行以下两种操作之一。
1.调用API从后端获取项目。
2.如果确实不希望后端调用在删除后获取新列表,请至少从列表中拼接/切片该项,以便*ngFor不会将该项包含在列表中
否则,在刷新列表之前,您将在列表中保留该项。请尝试以下操作:
this._service.delete(item)
.subscribe(
(result) => { this.something = result },
error => { this.errorMessage = <any>error; },
() => {
this.refreshView();
});
refreshView() {
this._service.getItems()
.subscribe(
(result) => { this.myItems = result },
error => { this.errorMessage = <any>error; },
() => {});
}
this.\u服务.删除(项目)
.订阅(
(result)=>{this.something=result},
error=>{this.errorMessage=error;},
() => {
这是refreshView();
});
刷新视图(){
此._service.getItems()
.订阅(
(结果)=>{this.myItems=result},
error=>{this.errorMessage=error;},
() => {});
}
你能分享代码吗Hii Joe,谢谢,它显然对我有效…我怀疑每次删除一个项目我都要打两个服务电话…有必要吗?。。有没有办法减少HTTP调用…@Priyatham krishna我想,你应该把你的物品放在一些物品数组中。如果不希望每次删除都调用服务器两次,则可以删除服务器上的项,并且在同一次调用中,可以从该阵列拼接该项。这样,服务器和客户端将拥有相同的数据。我个人,将调用服务器,因为有可能一些用户也删除了一些东西,并且你想要有新的数据。@普里亚萨姆·克里斯纳,如果这对你有帮助,你会考虑接受我的答案并把它升级吗?Hii Joe,我原计划以你的方式删除这些项目…我试图对你的答案投赞成票,但它不考虑我的投票。。。