Angular2 TypeError:linkParams.forEach不是函数

Shr*_*hri 2 typescript angular2-routing angular

我试图从click事件的函数显式导航到路由

<a (click)="loadContact()">Contact</a>
Run Code Online (Sandbox Code Playgroud)

AppComponent class是这样定义的

export class AppComponent{

    constructor(private _router:Router){}

    public loadContact = function(){
        ...
        ...
        this._router.navigate('[Contact]');
    }
}
Run Code Online (Sandbox Code Playgroud)

但是我收到了这个错误

TypeError: linkParams.forEach is not a function
Run Code Online (Sandbox Code Playgroud)

我如何解决它?

编辑:

这是RouteConfig

@RouteConfig([
    { path: '/contact', name: 'Contact', component: ContactsComponent },
    { path: '/notes', name: 'Notes', component: NotesComponent }
])
Run Code Online (Sandbox Code Playgroud)

bas*_*rat 7

TypeError: linkParams.forEach is not a function

错误原因: When a redirect, or router link is setup incorrectly and an array is not provided, an error is thrown

报告也提供更好的错误处理:https://github.com/angular/angular/issues/7952

你的代码

这里 :

this._router.navigate('[Contact]');
Run Code Online (Sandbox Code Playgroud)

是一个字符串.它应该是 :

this._router.navigate(['Contact'] /* some array */);
Run Code Online (Sandbox Code Playgroud)

更多

https://angular.io/docs/ts/latest/guide/router.html#!#link-parameters-array