问题标签 [async-pipe]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
angular - ngFor 中嵌套异步的最佳实践?
假设我有一个汽车清单:
我在模板中渲染它们:
在该模板内部,我想从返回可观察对象的方法中获取一些动态图像路径:
对于状态管理和存储,我使用的是 Firebase。我所有的图像都存储在一个存储桶中,我可以通过为我的服务提供一个 carId 来获取它们,该 carId 使用它来获取下载 URL。
我想避免在第一次保存文件时使用 downloadURL 更新 Firestore,因为我会将它们存储在子集合中,并且由于 Firestore 的性质,将它们从那里拉出来已经很痛苦。
有没有办法更有效地做到这一点?如果列表开始增长,上面的代码肯定会让浏览器爬起来……对吧?
angular - 带有异步管道的Angular ngFor,告诉参数具有空类型
此消息的原因是什么
当我尝试在循环中使用async
管道时:ngFor
插槽为:
这是否意味着 Angular 猜测 Subject 可以返回一个空值?如何解决这个问题呢?
谢谢!
angular - 当 ngModel 值改变时如何使 observables 重新发射
我在我的 HTML 中使用了这些 observables,但是每次我的 HTML 控件的输入值发生变化时它们都不会重新发出(并且它们依赖于这些值,因此它们变得不同步)。例如,当这个更新 ( [(ngModel)]="mappedItem.selectedBusinessEntities"
) 然后selectedBusinessEntitiesOptionsAsDtos$ | async
需要重新发出。请参见第二个 HTML 控件的选项是第一个 HTML 控件的选定选项。我是否需要以[(ngModel)]="mappedItem.selectedBusinessEntities"
某种方式使该值成为可观察的?
HTML:
打字稿:
编辑:
尝试过像这样分解 ngModel:
ts:
令人讨厌的是,这确实会导致this.selectedBusinessEntitiesOptionsAsDtos$
运行并发出新列表(使用调试器检查)。但是用户界面没有更新。这就是为什么我添加this.cdRef.detectChanges();
但它没有用。
angular - 类型“组件”Angular 12 上不存在属性“<>”
我正在使用可观察的异步管道将对象“customer$”传递给我的 html 文件。该对象包含一个地址数组,我想用它来使用 *ngFor 创建一个列表;但是,我收到错误Property 'address' does not exist on type 'CustomersComponent'.
是因为我引用了父 div 中的客户集吗?
这是我的 component.ts 和 html 文件,htmle 文件<p>{{ address.addressOne }}</p>
中的行是导致错误的行
这是我给客户的模型-
这是地址的模型 -
angular - Observable 不更新视图
我正在尝试为 Angular 构建一个调度程序组件。但是,在创建事件时,视图似乎没有被更新。
我创建了一个最小的 StackBlitz 来演示这个问题。
编辑
我也用日历组件创建了一个 StackBlitz。请注意,标签正在更新,但日历上的 div 没有。
BehaviorSubject
按预期更新视图,但在使用运算符后map
,视图未更新。我已经完成了this.calendarEvents$.next(data)
,但这并不能解决核心问题,并且可以防止检测到属性更改。
编辑
我已经更新了代码,以便手动查找更改并明确强制触发更改检测器。然而,即使changeDetectorRef.detectChanges()
只在必要时调用,视图仍然没有更新。
angular - 是否可以将 Angular 异步管道与 FullCalendar 一起使用?
如果可能的话,有没有人有一个如何在 FullCalendar 中使用异步管道的例子?例如像这样的东西?