当我尝试创建角度路由链接时,我一直收到此错误:
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
})]);
答案 0 :(得分:1)
您不需要包含directives: [RouterLink]
,即可使用[routerLink]
。您可以通过RouterModule.forRoot
进行设置来获取它。
@NgModule({
...
imports: [
BrowserModule,
FormsModule,
RouterModule.forRoot(<route paths and configurations>)
],
....
})
在任何功能模块中,您必须通过添加RouterModule
显式导入它。
希望这会有所帮助!!