Angular 2 Неподготовлено (в обещании): TypeError: Не удается прочитать свойство 'isActivated' из undefined

Если я вернусь к тому же пути маршрутизации, вы увидите сообщение об ошибке

"Неподготовлено (в обещании): TypeError: Невозможно прочитать свойство isActivated 'из undefined".

Но не показывать в первый раз. может кто-нибудь мне помочь?

маршрутизация

const mainRoutes: Routes = [
    { path: '', pathMatch: 'full', redirectTo: '/home' },
    {
        path: 'home', loadChildren: './apps/home/home.module#HomeModule', canActivate: [AuthGuard],
        resolve: {
            crisis: NavigarionResolve
        }
    }
    { path: '**', component: PageNotFoundComponent }
];

Компонент

import { Component, OnInit } from '@angular/core';
import { Router } from '@angular/router';
import { AuthService }            from '../main/service/auth.service';

@Component({
  selector: 'home-app',
  templateUrl: 'apps/home/view/home.component.html',
  providers: [AuthService]
})

export class HomeComponent implements OnInit {
  loaded: boolean = false;
  title = 'Customer Management Home';
  slogan = 'Hi ...Home ';
  views: Object[] = [];
  constructor(private _authService: AuthService, private router: Router) {
    this.views = [
      {
        name: "My Account",
        description: "Edit my account information",
        icon: "assignment ind"
      },
      {
        name: "Potential dates",
        description: "Find your soulmate!",
        icon: "pets"
      }
    ];

  }
  logout() {
    this._authService.logout().then(() => {
      this.router.navigate(['/login']);
    });
  }

  ngOnInit() {

  }
}

Navigarion

 this.router.navigate(['/home']);

Ответ 1

Для меня проблема была вторым экземпляром загружаемого приложения. Это было вызвано недопустимым templateUrl в компоненте "control".

Я переместил компонент spinner, который у меня есть от app/components/client/spinner.component до app/components/shared/spinner.component, но забыл обновить templateUrl.
Это означало, что мой счетчик загружался внутри моих других компонентов с неправильным html. Я использовал правильный путь для компонента в module.ts, поэтому он не бросал никаких ошибок сборки, но когда он не мог найти spinner.component.html, mvc6 возвращал индексную страницу по умолчанию, поэтому он попытался загрузите все приложение изнутри компонента. Это внутреннее приложение затем удалялось после удаления счетчика при загрузке моего содержимого.

Я не совсем понимаю это, но похоже, что маршрутизатор сталкивался с каким-то конфликтом из-за того, что приложение снова загружается изнутри. В моем случае мне посчастливилось заметить, что мое приложение сжималось, поэтому я приостановил javascript во время глючной части и просмотрел html, и заметил, что внутри моего счетчика есть тег <html>.

Попробуйте установить точку останова в классе app.component и посмотреть, будет ли он дважды попадать, или запустить document.getElementsByTagName("my-app") (или что-то еще, что ваш app.component) в консоли, и если у вас есть более одного элемента вернулись, вы должны уметь отлаживать проблему оттуда. В моем случае это проявлялось только пока показывали счетчик, поэтому, если у вас есть компоненты, входящие и выходящие на вашей странице, попробуйте ломать на каждом шоу/скрывать.