ionic - changeDetectorRef detectChanges () изменяет модель - PullRequest
0 голосов
/ 09 июня 2018

В моем контроллере страницы в какой-то момент мне нужно обновить пользовательский интерфейс, и кажется, что вызов chageDetector.detectChanges () является обязательным в этой конкретной точке.Что происходит: я переназначаю строковое свойство в моей модели, значение которого изменяет некоторые из моего пользовательского интерфейса.Как только я вызываю метод detectChanges (), это свойство получает его старое значение .Я изменю только имена и значения в своем коде, но помимо этого я работаю с следующим:

Прежде всего, у меня есть enum:

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 - применить изменения модели к компоненту, ничего больше.Может кто-нибудь объяснить поведение и, в случае, как его избежать?Заранее спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...