Вы, вероятно, бежите за пределы 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();
}