ionic - changeDetectorRef detectChanges()修改模型

时间:2018-06-09 09:52:25

标签: angularjs typescript ionic-framework model-binding angular2-changedetection

在我的页面控制器中,我需要更新UI,并且看起来在该特定点强制调用chageDetector.detectChanges()。 会发生什么:我正在我的模型中重新分配一个字符串属性,其值会改变我的一些UI。 只要我调用detectChanges()方法,该属性就会获取 其旧值 。 我只会将名称和值更改为我的代码,但除此之外,以下是我正在使用的内容:

首先,我有一个枚举:

enum TypeEnum { TypeA: 'A', TypeB: 'B' }

然后我的控制器:

selectType(type: TypeEnum) {  //type has value 'B'

  this.verify = true;
  this.setFieldXOnTypeChange(type);

                                          //this.model.type has value 'A'
  this.model.type = type;                 //this.model.type = 'B'
                                          //now this.model.type has value 'B'

  //other stuff is calculated
  this.scrollToBottom();
  this.onFieldYReturn(null, true, true);
  this.typeAccordionHeader.value = type;
  if (type == typeEnum.TypeB) {
    this.model.date = this.today;
  }
  this.setPageTitleForType(type);

                                        //before call > this.model.type: 'B'
  this.changeDetector.detectChanges();
                                        // after call > this.model.type: 'A'
}

这是我以前从未体验过的行为:我知道changeDetector的目的是将模型更改应用于组件,没有别的。 任何人都可以解释这种行为,以防万一,如何避免它? 提前谢谢!

0 个答案:

没有答案