Angular V9 异步管道未在数据更改时更新模板视图
Angular V9 Async pipe not updating template view on data change
伙计们,我现在几乎停滞不前了。我正在使用一个小型服务从 API 获取详细信息,返回一个 JSON 对象。我将其作为服务方法中的 Observable 返回;然后在 class 创建时用它初始化本地组件变量“sateliteData$”。
在 HTML 我正在尝试使用 |异步管道来处理自动更改检测,因为此 API 的值每秒都会更改。但是当查看我的应用程序时,它获取第一组值并将它们显示到屏幕上,但从不更新它们。
您必须手动刷新页面才能获得不同的值,这是我试图通过使用 Observables 和 | 来避免的。异步管道。
我在网上看了很多,我所做的一切似乎都与其他人所做的相匹配。我只是想不通,非常感谢有人花时间帮我看看这个。
请参阅下面的代码屏幕截图。
谢谢大家。
最简单的方法是以固定时间间隔轮询服务器。您可以使用 rxjs
实现此目的
polling$ = interval(2000).pipe(switchMap(_ => this.service.MyGetRequest()));
您可以在此处看到最小的工作堆栈闪电战:https://stackblitz.com/edit/angular-ivy-ebebp4
有关简单轮询的更多信息,请点击此处:https://www.learnrxjs.io/learn-rxjs/recipes/http-polling
如果您正在轮询不属于您的外部服务或 API,请注意不要向它们发送大量请求。查看他们的文档以确定什么是合适的间隔或不合适的间隔。
伙计们,我现在几乎停滞不前了。我正在使用一个小型服务从 API 获取详细信息,返回一个 JSON 对象。我将其作为服务方法中的 Observable 返回;然后在 class 创建时用它初始化本地组件变量“sateliteData$”。
在 HTML 我正在尝试使用 |异步管道来处理自动更改检测,因为此 API 的值每秒都会更改。但是当查看我的应用程序时,它获取第一组值并将它们显示到屏幕上,但从不更新它们。
您必须手动刷新页面才能获得不同的值,这是我试图通过使用 Observables 和 | 来避免的。异步管道。
我在网上看了很多,我所做的一切似乎都与其他人所做的相匹配。我只是想不通,非常感谢有人花时间帮我看看这个。
请参阅下面的代码屏幕截图。
谢谢大家。
最简单的方法是以固定时间间隔轮询服务器。您可以使用 rxjs
实现此目的polling$ = interval(2000).pipe(switchMap(_ => this.service.MyGetRequest()));
您可以在此处看到最小的工作堆栈闪电战:https://stackblitz.com/edit/angular-ivy-ebebp4
有关简单轮询的更多信息,请点击此处:https://www.learnrxjs.io/learn-rxjs/recipes/http-polling
如果您正在轮询不属于您的外部服务或 API,请注意不要向它们发送大量请求。查看他们的文档以确定什么是合适的间隔或不合适的间隔。