从runOutsideAngular上下文中调用ChangeDetectorRef.detectChanges。可以吗

斯坦尼斯拉夫·贝尔科夫(Stanislav Berkov)

ChangeDetectorRef.detectChangesNgZone.runOutsideAngular上下文调用可以吗?我有一个角度应用程序,可通过接收数据WebSocketWebsocket数据流是如此密集,因此我将其包装到NgZone.runOutsideAngular各种服务订阅websocket数据,对其进行处理并报告自己的事件(Observables)。它们在角度区域外触发。Angular组件订阅它们,并在事件处理程序(观察者)中调用ChangeDetectorRef.detectChanges在大多数情况下,这可以。但是在某些情况下,这会带来麻烦:ngFor可能会在角度区域之外创建新的元素/组件。此类组件的事件处理程序将触发超大角度。我知道我可以将它们包装到NgZone.run调用中,但这将导致我希望避免全局更改检测。

UPDATE1:我创建了一个示例来演示该问题:https ://stackblitz.com/edit/angular-5-change-detection-in-runoutsideangular-context添加一些项目,然后尝试使用x按钮将其删除

斯坦尼斯拉夫·贝尔科夫(Stanislav Berkov)

实际上,您不应ChangeDetectorRef.detectChanges在角度区域外运行,因为如果在检查期间创建了任何组件,则此类组件将不在角度区域内,将无法处理常见事件。

为了解决我的问题,我会在短时间内(250毫秒)累积事件,然后在一次NgZone.run调用中处理它们。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在已经拆分的上下文中调用await时会产生开销吗?

来自分类Dev

在MongoDB(Mongoose)上下文之外使用MongoDB _id可以吗?

来自分类Dev

在对象文字的声明中继承上下文(此)?自我可以吗?

来自分类Dev

在我的域模型中有数据库上下文可以吗

来自分类Dev

使用类的方法作为上下文管理器可以吗?

来自分类Dev

从shouldComponentUpdate内调用setState可以吗?

来自分类Dev

在setInterval()之前调用clearInterval()可以吗?

来自分类Dev

在monad的上下文中必须使用符号吗?

来自分类Dev

标量上下文中的glob是惰性迭代器吗?

来自分类Dev

当不在对象上下文中时使用$ this吗?

来自分类Java

是否可以在GWT UiBinder上下文中引用枚举

来自分类Dev

从非静态上下文中调用同一类的Java构造函数会导致递归,但使用静态,它可以正常工作吗?

来自分类Dev

我可以在自身上下文中创建proc吗?

来自分类Dev

可以在未评估的上下文中使用static / dynamic / const / reinterpret_cast吗?

来自分类Dev

您可以将Func <EFContext,TResult>包装在Entities上下文中以供重用吗?

来自分类Dev

持有锁时可以在上下文中切换线程吗?

来自分类Dev

我可以在单线程上下文中安全地使用 Ordering::Relaxed 吗?

来自分类Dev

ExecuteSqlCommand可以在另一个上下文中访问表吗?

来自分类Dev

在MySQL中,可以在INSERT上下文中使用IF吗?

来自分类Dev

是否可以在其他上下文中使用带有响应(钩子)的上下文?

来自分类Dev

从Android Service onStartCommand()中调用stopSelf()可以吗?

来自分类Dev

在 make 调用中使用 BUILD_MODE 可以吗?

来自分类Dev

在React的子组件上调用setState可以吗?

来自分类Dev

在 redux 中使用 reducer 进行后端调用可以吗?

来自分类Dev

在调用va_end之前,longjmp可以吗?

来自分类Dev

在视图Rails中调用ActiveRecord方法可以吗?

来自分类Dev

从非派生代码调用基本方法,可以吗?合法的?

来自分类Dev

从析构函数调用非成员函数可以吗?

来自分类Dev

经常在ObjectOutputStream上调用reset()可以吗?

Related 相关文章

  1. 1

    在已经拆分的上下文中调用await时会产生开销吗?

  2. 2

    在MongoDB(Mongoose)上下文之外使用MongoDB _id可以吗?

  3. 3

    在对象文字的声明中继承上下文(此)?自我可以吗?

  4. 4

    在我的域模型中有数据库上下文可以吗

  5. 5

    使用类的方法作为上下文管理器可以吗?

  6. 6

    从shouldComponentUpdate内调用setState可以吗?

  7. 7

    在setInterval()之前调用clearInterval()可以吗?

  8. 8

    在monad的上下文中必须使用符号吗?

  9. 9

    标量上下文中的glob是惰性迭代器吗?

  10. 10

    当不在对象上下文中时使用$ this吗?

  11. 11

    是否可以在GWT UiBinder上下文中引用枚举

  12. 12

    从非静态上下文中调用同一类的Java构造函数会导致递归,但使用静态,它可以正常工作吗?

  13. 13

    我可以在自身上下文中创建proc吗?

  14. 14

    可以在未评估的上下文中使用static / dynamic / const / reinterpret_cast吗?

  15. 15

    您可以将Func <EFContext,TResult>包装在Entities上下文中以供重用吗?

  16. 16

    持有锁时可以在上下文中切换线程吗?

  17. 17

    我可以在单线程上下文中安全地使用 Ordering::Relaxed 吗?

  18. 18

    ExecuteSqlCommand可以在另一个上下文中访问表吗?

  19. 19

    在MySQL中,可以在INSERT上下文中使用IF吗?

  20. 20

    是否可以在其他上下文中使用带有响应(钩子)的上下文?

  21. 21

    从Android Service onStartCommand()中调用stopSelf()可以吗?

  22. 22

    在 make 调用中使用 BUILD_MODE 可以吗?

  23. 23

    在React的子组件上调用setState可以吗?

  24. 24

    在 redux 中使用 reducer 进行后端调用可以吗?

  25. 25

    在调用va_end之前,longjmp可以吗?

  26. 26

    在视图Rails中调用ActiveRecord方法可以吗?

  27. 27

    从非派生代码调用基本方法,可以吗?合法的?

  28. 28

    从析构函数调用非成员函数可以吗?

  29. 29

    经常在ObjectOutputStream上调用reset()可以吗?

热门标签

归档