angular - ionic 3 应用程序中的更改检测问题

标签 angular ionic-framework ionic3

数据在服务和组件中发生变化,但没有反射(reflect)在 View 上。

以下是使用的解决方案,但没有解决问题:

  1. 使用生命周期钩子(Hook) ngDoCheck

  2. 使用了 Angular 区域并在 zone.run() 中调用了方法

  3. 通过调用 ChangeDetectorRef.detectChanges() 手动调用更改检测

  4. 在调用方法之前添加了 5 秒的计时器。

我的代码:

ngOnInit() {
this.noticeService.notices.subscribe(data => {
  this.notices = data;
});
}

问题是每当我调试代码时,我发现数据反射(reflect)在组件的通知变量中,但它不会显示在 UI 上,除非不执行任何用户操作(例如单击)。 非常感谢您的帮助。

最佳答案

我只需将订阅代码从 ngOnInit() 移至 constructor() 就解决了这个问题。我不知道为什么它只在构造函数中起作用,也没有找到任何相关信息。我还发现有人已经面临同样的问题。

Why observable.subscribe works only from constructor

关于angular - ionic 3 应用程序中的更改检测问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51926664/

相关文章:

angular - 在集合 "ng-new"中找不到 "@schematics/angular"

Angular 2点击事件回调而不触发变化检测

mysql - 在 Cordova/Ionic 应用程序中通过 USB 在桌面移动设备之间同步数据

javascript - Div 响应所有设备 Ionic

node.js - ionic 3/node.js - 证书链中的自签名证书(如何禁用 strict-ssl?)

javascript - 错误 : Metadata version mismatch for module found version 4, 预期 3

javascript - Angular 在 HttpClient.get header 中设置授权

Angular - 在路由到延迟加载模块时将数据传递给主机组件

html - ionic 输入的 Ionic 3 键盘问题

angular - Ionic 3 - 如何移动主题>variable.scss 文件