2016-09-07 6 views
1

Нельзя использовать this.router.navigate.ОРИГИНАЛЬНОЕ ИСКЛЮЧЕНИЕ: Нет провайдера для маршрутизатора! угловой 2 RC5

Это мой: app.module.ts

import {NgModule, NgModuleMetadataType}  from '@angular/core'; 
    import { BrowserModule } from '@angular/platform-browser'; 
    import {FormsModule} from '@angular/forms'; 
    import { HttpModule } from '@angular/http'; 
    ... 
    import {routing} from "./app.routing"; 
    import {entry} from "./entry.component"; 
imports: [ 
     BrowserModule, 
     FormsModule, 
     routing, 
     HttpModule, 
    ], 

Тест компонент

import { Component } from '@angular/core'; 
import {HttpClient} from "./HttpClient.component"; 
import {Router} from "@angular/router-deprecated"; 

@Component({ 
    templateUrl: 'templates/entry.html' 
}) 
export class entry { 
    ... 
    constructor(head:HeaderComponent, private httpClient: HttpClient, private router: Router) { 
     this.httpClient = httpClient; 
    } 
    nav_test(){ 
     this.router.navigate(['search']); 
    } 
} 

и app.routing

import { Routes, RouterModule } from '@angular/router'; 
const appRoutes: Routes = [ 
    { 
     path: '', 
     redirectTo: '/home', 
     pathMatch: 'full', 
    }, 
    { 
     path: 'home', 
     component: HomeComponent 
    }, 
    { 
     path: 'search', 
     component: SearchComponent 

    } 

]; 
export const routing = RouterModule.forRoot(appRoutes, {useHash: true}); 

и в конце концов у меня есть эта ошибка:

EXCEPTION: Error: Uncaught (in promise): EXCEPTION: Error in ./entry class entry_Host - inline template:0:0 ORIGINAL EXCEPTION: No provider for Router!

Благодарим вас заблаговременно!

ответ

1

Проблема с вашим импортом компонентов тестов,

вы используешь

import {Router} from "@angular/router-deprecated"; 

вы должны использовать,

import { Router } from '@angular/router'; 

Надеюсь, это поможет!

+0

Lol thnaks за вас ответит, я опоздал на минутку xD – Vendicto

+0

Как-то Угловая команда по-прежнему поддерживает устаревший маршрутизатор, она должна начинать тревогу, машина должна загореться, если вы используете ее. LOL, Cheers !! –

0

Не уверен, как useHash: настоящие произведения, но я определяю стратегию местоположения в @NgModule:

providers:[{provide: LocationStrategy, useClass: HashLocationStrategy}]

И я использую последний маршрутизатор, а не устаревшие один.

Рабочих образцов rc.6 кода здесь: https://github.com/Farata/angular2typescript/tree/master/chapter3/router_samples