Загрузка представления очень долгое время, когда location.back () вызывается в приложении Angular - PullRequest
0 голосов
/ 01 сентября 2018

У меня есть приложение Cordova. location.back () очень долго работает на устройстве или в эмуляторе. Зачем? Есть ли решение?

constructor(
  private location: Location
) { }

onClick(){
  this.location.back();
}

1 Ответ

0 голосов
/ 01 сентября 2018

Вы, вероятно, бежите за пределы NgZone. Ваш код, очевидно, является упрощением того, что вы на самом деле делаете. Чтобы проверить, действительно ли вы находитесь в зоне, вы можете сделать это:

onClick(){
  this.location.back();
  console.log('In Zone:', NgZone.isInAngularZone()) 
}

Если в этом журнале false, вам следует проверить, почему вы вышли из зоны. Опять же, с количеством кода вы разместили это невозможно определить. Чтобы проверить, действительно ли это проблема с обнаружением изменений, попробуйте это, чтобы проверить, быстрее ли это:

// don't use this in production

constructor(
  private location: Location,
  private app: ApplicationRef
) { }

onClick(){
  this.location.back();
  this.app.tick();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...