Angular 2 - 如何刷新我的视图数据?

时间:2017-11-13 08:28:22

标签: angular

我是Angular 2中的新人,我需要一些关于我个人项目的建议。 我有两个组件,一个编队列表和一个表格来更新我的数据。 我使用服务调用来更新我的数据并显示我的编队列表。 我的视图上的数据更新有问题,但我通过添加计时器来刷新数据来解决它。 我不喜欢这个解决方案,因为我的服务在我的编队列表界面中每秒调用一次:/

我的问题:在我的情况下更新我的观点的更好方法是什么?

提前谢谢

2 个答案:

答案 0 :(得分:1)

您的问题是,如何在您的应用程序中触发更改检测。特别是当视图中满足任何可观察/承诺时,您需要手动触发应用程序中的更改检测,

在您的组件中声明以下内容

constructor(private ref: ChangeDetectorRef)

并用此方法标记其所有祖先以进行检查,

ref.markForCheck();

在您的应用程序中,您也可以手动触发更改检测,如下所示,

ChangeDetectorRef.detectChanges() 

这是另一篇关于变化检测的精彩文章,您可以参考,这可以为您提供一些变化检测的洞察力。

Stack overflow answer of change detection

答案 1 :(得分:0)

你应该看看Angular 2+中的EventEmitter。 由于您以更新形式成功更新了数据,因此应将事件发送到列表组件。 在列表组件中,您应该侦听发出的事件,然后通过服务调用刷新数据。 这是使用EventEmitter的一个示例: https://developer.telerik.com/topics/web-development/component-event-binding-output-angular-2/