2016-07-22 119 views
0

我使用的是路由器3.0.0-alpha.8的Angular 2.0.0-rc3。角路由器3 routerLink不工作

我有一个BookListComponent与下面的模板:

<nav> 
    <a routerLink="/new-book">New Book</a> 
</nav> 

<ul> 
    <li *ngFor="let book of books">{{ book.name }}</li> 
</ul> 

然后这里是BookListComponent本身:

import { Component, OnInit } from '@angular/core'; 
import { BookService } from '../book.service'; 
import { ROUTER_DIRECTIVES } from '@angular/router'; 

@Component({ 
    moduleId: module.id, 
    selector: 'app-book-list', 
    templateUrl: 'book-list.component.html', 
    styleUrls: ['book-list.component.css'], 
    providers: [ROUTER_DIRECTIVES, BookService] 
}) 
export class BookListComponent implements OnInit { 
    books: any; 

    constructor(private bookService: BookService) {} 

    ngOnInit() { 
    this.bookService.getList() 
     .subscribe(response => this.books = response.json()); 
    } 

} 

不仅链接不带我去/new-book航线(其中,如果访问“手动”,工作得很好),但“链接”甚至不是一个链接 - 它只是黑色文本。

如何获得链接工作?

+0

''New Book可能是值得一试。我已经看到一个关于routerLink的错误报告和一个字符串参数。无论如何更新路由器beta.2。 –

回答

2

providersROUTER_DIRECTIVES但它需要的是directives下。将它移动到directives解决了这个问题。

这是我的新BookListComponent

import { Component, OnInit } from '@angular/core'; 
import { BookService } from '../book.service'; 
import { ROUTER_DIRECTIVES } from '@angular/router'; 

@Component({ 
    moduleId: module.id, 
    selector: 'app-book-list', 
    templateUrl: 'book-list.component.html', 
    styleUrls: ['book-list.component.css'], 
    providers: [BookService], 
    directives: [ROUTER_DIRECTIVES] 
}) 
export class BookListComponent implements OnInit { 
    books: any; 

    constructor(private bookService: BookService) {} 

    ngOnInit() { 
    this.bookService.getList() 
     .subscribe(response => this.books = response.json()); 
    } 

} 
0

检查您是否错过主机视图HTML中的路由器插座标签。

<router-outlet></router-outlet>

我用这个作为参考:
https://angular.io/docs/ts/latest/guide/router.html

+0

不幸的是,这并没有奏效。我已经在'AppComponent'的模板中有''。将另一个添加到我的链接所在的同一个模板中并没有改变任何内容。 –