2016-09-07 49 views
1

无法使用this.router.navigate。原始异常:没有Router的提供者! angular 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

洛尔thnaks为你回答,我迟到了一分钟的xD – Vendicto

+0

不知何故角队仍然保持路由器过时,它应该开始有人报警,机器应该是着火了,如果你使用它..大声笑,干杯! –

相关问题