我有一个组件内部组件的HTML结构(忘记了适当的单词)。更改检测不注册数据更改
basicly这样工作(大大简化):
主要的html:
<div *ngFor="let item of data">
<app-item [item]="item"></app-item>
</div>
<button (click)="addItem()">Add</button>
项目的html:
<div>{{item.name}}</div>
<button (click)="deleteItem()">Delete</button>
应用项目中我展示几个项目从列表。该列表通过http.get请求直接从数据库中获取数据。
现在我还可以添加或删除两个工作项目(项目分别添加到数据库或从数据库中删除项目)。尽管更改检测没有选择任何项目,并且需要刷新站点(例如,通过F5)以显示更改。
我检查了代码(不是全部来自我),也找不到任何指定的更改检测策略。
我还尝试通过ChangeDetectorRef(this.ref.detectChanges();
)手动调整添加和删除功能中的变化检测。 尽管这也没有消除手动刷新页面以查看更改的需要。
现在我缺少什么改变检测来挑选它?或者,如何在添加/删除方法中手动触发它?
_change检测不挑它的任何_ - 什么做你期望发生? 'addItem'和'deleteItem'做什么? –
它调用服务,http.post和http.delete请求,因为数据来自http.get我认为变化检测会捡起来 – m41n
@ m41n那么Angular不会自动激发你没有告诉角的请求去做。因此,您需要激发'get'请求以从后端获取“更新”数据。 – Alex