В приложении Cordova, обертывающем угловое приложение, после того, как я нажимаю кнопку «Назад», кажется, что приложение больше не находится в «угловой зоне», поэтому, если после этого я нажму на любую ссылку на маршрутизатор, оно ничего не сделает и выдаст ошибку Navigation triggered outside Angular zone, did you forget to call 'ngZone.run()
?
Пробовали добавлять «pathMatch: 'full'» к маршрутам. Также попробовал решение здесь: Предупреждение директивы Angular 7 routerLink ' Навигация срабатывает за пределами зоны Angular', и она работает, но мне бы не хотелось писать this.ngZone.run(() => this.router.navigateByUrl(''))
на каждой странице. Я чувствую, что синтаксис routerLink="" намного чище.
Моя кнопка, которую я нажал, выглядит так:
<button type="button" class="btn btn-success btn-wide" routerLink="/search-by-keyword">
Код, где он ломается, выглядит следующим образом (обратите внимание, что все логические значения верны)
navigateByUrl(url, extras = { skipLocationChange: false }) {
if (isDevMode() && this.isNgZoneEnabled && !NgZone.isInAngularZone()) {
this.console.warn(`Navigation triggered outside Angular zone, did you forget to call 'ngZone.run()'?`);
}
Это отлично работает, если я просто запускаю его в Angular. Но когда я запускаю приложение Cordova, обертывающее его, оно терпит неудачу. Стоит ли мне об этом беспокоиться, поскольку эта ошибка возникает только в DevMode?
Заранее спасибо.