Angular 2 ngOnInit не вызывается

Я создаю приложение Angular 2 с версией beta.8.
В этом приложении у меня есть компонент, который реализует OnInit.
В этом компоненте у меня есть функция ngOnInit, но функция ngOnInit никогда не вызывается.

import { Component, OnInit } from 'angular2/core';

@Component({
  templateUrl: '/app/html/overview.html'
})

export class OverviewComponent implements OnInit {
  ngOnInit() {
    console.log('ngOnInit');
  }
}

Маршрутизация приложения:

@RouteConfig([
  {
    path: '/overview',
    name: 'Overview',
    component: OverviewComponent
  },
  {
    path: '/login',
    name: 'Login',
    component: LoginComponent
  },
  {
    path: '/register',
    name: 'Register',
    component: RegisterComponent,
    useAsDefault: true
  }
])

Существует проверка того, что пользователь уже зарегистрировался внутри LoginComponent и RegisterComponent.
Если пользователь вошел в систему, компоненты перенаправляются на Обзор, используя: router.navigate(['Overview']).
Если я использую маршрут обзора по умолчанию, я вижу ngOnInit внутри консоли.
Поэтому способ перенаправления моей страницы, похоже, является проблемой.
Как перенаправить на страницу Обзор и вызвать функцию ngOnInit?

Оба RegisterComponent и LoginComponent используют

ngOnInit() {
  this._browser.getStorageValue('api_key', api_key => {
    if (api_key) {
      this._browser.gotoMain();
    }
  })
}

Браузер - это класс, в котором я храню определенный код браузера. Это функция gotoMain:

gotoMain() {
  this._router.navigate([this._browser.main]);
}

this._browser.main - это просто строка в этом случае "Обзор".

Ответы

Ответ 1

Я предполагаю, что это проблема зоны.

Ввод NgZone (импорт из angular2/core

constructor(private zone:NgZone) {}

this._browser.getStorageValue('api_key', api_key => {
  if (api_key) {
    this.zone.run(() => this._browser.gotoMain());
  }
})