我正在这样导入ChangeDetectorRef:

import { Component, ViewChild, ChangeDetectorRef , ElementRef } from '@angular/core';

并在我的页面的构造函数中初始化更改检测器,如下所示:
constructor(
    ...
    private ref: ChangeDetectorRef
  )

但是当我在回调函数中执行detectChanges()时:
 hardResetCallback(car:Car){
    this.car=car;
    this.ref.detectChanges();
  }

它说“无法读取未定义的属性'detectChanges'”。我可能会缺少什么?

编辑:

回调是从模式调用的。模态通过nav参数获取回调-在我称为的父组件中:
const resetModal : Modal = this.modal.create('CarConfigurationResetPage', { car: this.car, callback: this.hardResetCallback });
    resetModal.present();

然后这就是我在模态中得到它的方式:
 this.callback=this.navParams.get('callback');

我在AJAX调用的成功方法中从模式调用回调,如下所示:
this.callback(response);

最佳答案

 hardResetCallback = (car:Car) => {
    this.car=car;
    this.ref.detectChanges();
  }

使用粗箭头功能可以防止在hardResetCallback方法范围内创建“this”。

查看有关箭头功能的更多信息here.

相关报价:

关于angular - ionic , Angular -ChangeDetectorRef未定义,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51418124/

10-12 17:13