首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么routerLink会失败?

为什么routerLink会失败?
EN

Stack Overflow用户
提问于 2016-09-01 13:51:23
回答 1查看 535关注 0票数 2

目标:

navbar.component.html中使用链接

代码语言:javascript
复制
<a [routerLink]="['/applications']" routerLinkActive="active">Applications</a>

问题:

我得到了错误:ORIGINAL EXCEPTION: No provider for RouterOutletMap!

上下文:

navbar.component.ts

代码语言:javascript
复制
import { Component } from '@angular/core';
import { Router, RouterOutlet, RouterLink } from '@angular/router';

@Component({
    moduleId: module.id,
    selector: 'navbar',
    templateUrl: 'navbar.component.html',
    styleUrls: ['navbar.component.css'],
    directives: [RouterOutlet, RouterLink]
})
export class NavbarComponent
{
    version: string;
    versionIsVisible: boolean;
    router: Router;

    constructor(router: Router) {
        this.version = '<%= VERSION %>';
        this.router  = router;
    }
}

app.component.ts

代码语言:javascript
复制
import { Component, ViewEncapsulation } from '@angular/core';
import { NavbarComponent } from './navbar/navbar.component';
import { ApplicationComponent } from './application/application.component';

export { Config } from './config/env.config';

@Component({
    moduleId: module.id,
    selector: 'app',
    templateUrl: 'app.component.html',
    styleUrls: ['app.component.css'],
    encapsulation: ViewEncapsulation.None,
    directives: [NavbarComponent, ApplicationComponent]
})
export class AppComponent
{
    constructor() {
        // console.log('Environment config', Config);
    }
}

app.routes.ts

代码语言:javascript
复制
import { ModuleWithProviders } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { ApplicationComponent } from './application/application.component';

export const routes: Routes = [
    { path: '', component: ApplicationComponent },
    { path: 'applications', component: ApplicationComponent },
    { path: 'signin', component: ApplicationComponent },
    { path: 'profile', component: ApplicationComponent },
    { path: 'help', component: ApplicationComponent },
    { path: 'view/settings/:key', component: ApplicationComponent },
    // { path: '**', component: PageNotFoundComponent },
];

export const appRoutingProviders: any[] = [

];

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

app.module.ts

代码语言:javascript
复制
import { ModuleWithProviders } from '@angular/core';
import { AppComponent } from './app.component';
import { routes, appRoutingProviders } from './app.routes';

@NgModule({
    imports: [
        BrowserModule,
        FormsModule,
        routes
    ],
    declarations: [
        AppComponent,
    ],
    providers: [
        appRoutingProviders
    ],
    bootstrap: [ AppComponent ]
})

package.json

代码语言:javascript
复制
"dependencies": {
    "@angular/common": "2.0.0-rc.5",
    "@angular/compiler": "2.0.0-rc.5",
    "@angular/core": "2.0.0-rc.5",
    "@angular/forms": "0.3.0",
    "@angular/http": "2.0.0-rc.5",
    "@angular/platform-browser": "2.0.0-rc.5",
    "@angular/platform-browser-dynamic": "2.0.0-rc.5",
    "@angular/router": "3.0.0-rc.1",
    "core-js": "^2.4.0",
    "es6-module-loader": "^0.17.8",
    "gulp-minify-css": "^1.2.4",
    "gulp-sass": "^2.3.2",
    "gulp-sourcemaps": "^2.0.0-alpha",
    "rxjs": "5.0.0-beta.6",
    "systemjs": "0.19.27",
    "zone.js": "0.6.13"
}
EN

回答 1

Stack Overflow用户

发布于 2016-09-01 14:07:47

代码语言:javascript
复制
@NgModule({
    imports: [
        BrowserModule,
        FormsModule,
        routes

应该是

代码语言:javascript
复制
@NgModule({
    imports: [
        BrowserModule,
        FormsModule,
        routing // <== change
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39273385

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档