angular 2 rc5模板解析错误

时间:2016-08-24 16:17:38

标签: angular angular2-routing angular2-template

当我尝试创建角度路由链接时,我一直收到此错误:

zone.js:461 Unhandled Promise rejection: Template parse errors:
Can't bind to 'routerLink' since it isn't a known property of 'a'. ("
</h1>
<button (click)="doLogin()">Login</button>
<a [ERROR ->][routerLink]="['/createservice']" href="#">Post a Service</a>
<router-outlet></router-outlet>
"): AppComponent@4:3 ; Zone: <root> ; Task: Promise.then ; Value: BaseExceptionconsoleError @ zone.js:461
zone.js:463 Error: Uncaught (in promise): Template parse errors:(…)

这是我的代码:

<a [routerLink]="['/createservice']" href="#">Post a Service</a>

在我的组件中我有这个:

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

@Component({
  moduleId: module.id,
  selector: 'app-root',
  providers: [AngularFire],
  templateUrl: 'app.component.html',
  styleUrls: ['app.component.css'],
  directives: [RouterLink]
})

我也试过这个:

<a routerLink="/createservice" routerLinkActive="active">Post a Service</a>

遵循本教程(https://angular.io/docs/ts/latest/guide/router.html#!#router-link),但也不起作用。

这就是我引导我的应用程序的方式:

@NgModule({
  imports: [
    BrowserModule,
    AngularFireModule.initializeApp(firebaseConfig),
    RouterModule,
    routing
  ],
  declarations: [ AppComponent, CreateServiceComponent ],
  providers: [ appRoutingProviders ],
  bootstrap: [ AppComponent,FIREBASE_PROVIDERS ]
})
export class MyAppModule {}

if (environment.production) {
  enableProdMode();
}

bootstrap(AppComponent, [
  FIREBASE_PROVIDERS,
  defaultFirebase(firebaseConfig),
  firebaseAuthConfig({
  provider: AuthProviders.Facebook,
  method: AuthMethods.Popup
})]);

1 个答案:

答案 0 :(得分:1)

您不需要包含directives: [RouterLink],即可使用[routerLink]。您可以通过RouterModule.forRoot进行设置来获取它。

 @NgModule({
  ...
  imports: [
    BrowserModule,
    FormsModule,
    RouterModule.forRoot(<route paths and configurations>)
   ],
   ....
 })

在任何功能模块中,您必须通过添加RouterModule显式导入它。

希望这会有所帮助!!