Почему Angular может отключить перерисовку после смены модели? - PullRequest
0 голосов
/ 25 октября 2019

Я использую NavController в моем Cordova/Ionic приложении. Существует структура проблемных компонентов: Родительский компонент:

<ion-header>
  ...
</ion-header>
<ion-content>
  ...
</ion-content>
<child-component-form [myModelId]="myModelId"></child-component-form> 

Дочерний компонент:

<form #newCommentForm="ngForm" (ngSubmit)="onSubmit()">
  ...
  <ion-col>
    <ion-item>
      <ion-label>Some text</ion-label>
      <ion-checkbox [(ngModel)]="model.is_public" name="is_public"
                    (ionChange)="updateIsPublic($event)"></ion-checkbox>
        </ion-item>
  </ion-col>
</form>

Когда я нажимаю на ion-checkbox, он не переключает свое состояние. Но модель мгновенно меняет свое состояние

updateIsPublic() {
  console.log(this.model.is_public); // <- it displays the new correct state of the checkbox model. But the checkbox doesn't switch.
}

updateIsPublic($event) - это обратный вызов, который выполняет логику, не связанную с проблемой. Я

this.changeDetector.detectChanges(); - работает

this.ngzone.run(()=>{}) - работает

Но мне нужно решить проблему без него.

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