2016-08-16 7 views
8

У меня возникла проблема с использованием нового маршрутизатора с угловым 2 RC5 (версия маршрутизатора RC1).Угловой 2 RC5: Нет провайдера для маршрутизатора

Вот журнал я получаю от консоли разработчика:

EXCEPTION: Error in /templates/app.component.html:2:0 
ORIGINAL EXCEPTION: No provider for Router! 

Вот что мой app.modules.ts выглядит следующим образом:

import { NgModule } from '@angular/core'; 
import { BrowserModule } from '@angular/platform-browser'; 
import { FormsModule } from '@angular/forms'; 
import { HttpModule } from '@angular/http'; 
import { RouterModule } from '@angular/router'; 
import { AppComponent } from './components/app.component'; 
import { routing } from './app.routes'; 

@NgModule({ 
    declarations: [AppComponent], 
    imports:  [BrowserModule, RouterModule, FormsModule, HttpModule, routing], 
    bootstrap: [AppComponent], 
}) 
export class AppModule {} 

Вот мой файл boot.ts:

import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; 
import { AppModule } from './app.module'; 

platformBrowserDynamic().bootstrapModule(AppModule); 

Мои app.routes.ts файл ...

import { Routes, RouterModule } from '@angular/router'; 

// Components 
import { HomeComponent } from './components/home.component'; 

const routes: Routes = [ 
    // Root 
    { path: '/', name: 'Home', component: HomeComponent, useAsDefault: true}, 
]; 

// - Updated Export 
export const routing = RouterModule.forRoot(routes); 

... и мой app.component.ts файл:

import { Component, ViewContainerRef } from '@angular/core'; 

@Component({ 
    selector: 'app', 
    templateUrl: '/templates/app.component.html' 
}) 

export class AppComponent { 
    viewContainerRef: any; 

    public constructor(viewContainerRef:ViewContainerRef) { 
     // You need this small hack in order to catch application root view container ref 
     this.viewContainerRef = viewContainerRef; 
    } 
} 

Есть ли что-то я здесь отсутствует?

+1

«useAsDefault» больше недействительный. Я также удаляю '/' в свойстве path и добавляю в ваш файл index.html. –

+1

Маршруты «имя» также необходимо удалить. – SudarP

ответ

9

Внутри app.routes.ts файла:

Добавить импортную состояние

import { ModuleWithProviders } from '@angular/core'; 

Чем

export const routing: ModuleWithProviders = RouterModule.forRoot(routes); 

Это должно работать.

+0

Эй @ EmmanuelScarabin Добавление модуляWithProviders не исправило меня. У меня нет провайдера для Router! Ошибка, как только я добавлю тэг в app.component.html – SudarP

+1

@SudarP, вы также должны проверить, не используете ли вы «устаревший маршрутизатор» в любом из ваших компонентов. Это была вторая причина, вызывающая эту проблему для меня. –

+0

@ EmmanuelScarabin, Большое спасибо, что это исправлено. – SudarP

Смежные вопросы