【发布时间】:2018-08-19 18:52:17
【问题描述】:
我有一个连接到 firebase 数据库并下载所有项目的应用程序,然后这些项目显示在如下表格中:
此表仅在我登录时显示,但一旦我移动到另一个组件并返回到带有表的组件,数据就不再加载。
我认为那是因为我在 onInit() 函数中有以下代码:
ngOnInit() {
this.taskService.getTasks().subscribe(tasks => {
this.tasks = tasks;
});
}
这基本上只是读取数据并将其添加到数组中。 然后如果数组长度> 0,则数据将显示在表格中:
<div *ngIf="tasks?.length > 0;else noTasks">
</div>
我试图通过使用来解决这个问题
ngOnChanges() {
this.taskService.getTasks().subscribe(tasks => {
this.tasks = tasks;
});
}
但没有任何改变。 所以.. 有没有办法在每次加载组件时调用函数,或者我的问题与另一件事有关?
【问题讨论】:
-
你能搞定那个吗??
-
您的代码应该在 ngOnInt() 中,这是正确的!你错过了别的东西。你在改变路线吗?
-
是的,当我从导航栏中单击一个按钮时,另一个组件被加载,我将我的 repo 上传到 github
-
酷分享链接......
-
注意到您没有在 ngOnDestroy() 中保存和清理您的订阅。这可能会有所帮助,具体取决于您的服务使用的可观察对象类型。