我有一个名为main
的组件,其中main.routing.ts
定义如下:
@NgModule({
imports: [
RouterModule.forRoot([
{ path: 'main',
component: MainComponent,
canActivate: [AuthGuard],
children: [{ path: '', component: AccountMainComponent },
{ path: 'financial-accounts', component: FinancialAccountsComponent },
{ path: 'system-config', component: ConfigSysComponent },
{ path: 'conciliacao', component: ConciliacaoContabilComponent },
{ path: 'report', component: ReportComponent },
]}
])
]
})
export class MainRouting { }
我还有另一个content-toolbar
组件,我想创建一个指向main
组件的链接。 content-toolbar
会在内容 - router
和toolbar.module.ts
处导入content-toolbar.component.ts
。我在content-toolbar.component.html
这段代码:
<span>
<a routerLink="/main">
<img src="/assets/icons/logo_white.svg" class="logo">
</a>
</span>
但是此代码并未将此图像转换为指向其他组件的链接。我应该如何将main
组件作为路由器(ed)引用到content-toolbar
?
答案 0 :(得分:1)
我会猜测并说明以下内容:
最有可能在类似
的模块中声明ContentToolbarComponent
@NgModule({
imports: [..., MainRoutingModule,...],
declarations: [..., ContentToolbarComponent, ...]
})
export class FooModule {}
问题在于,您可能不将导出RouterModule
的{{1}}导入RouterLinkDirective
。这就是为什么angular不会生成带有超链接的锚元素。
解决方案是将FooModule
添加到RouterModule
的导出中,如下所示:
MainRoutingModule
重要的是,声明工具栏组件的模块必须直接导入 {/ 1}}或通过 exports 另一个导入的模块,以便工具栏组件可以使用该指令。
答案 1 :(得分:0)
因此,为了使Angular路由在下面正常工作,需要注意以下事项
import { RouterModule } from '@angular/router';
//import your components
@NgModule({
declarations:[your components],//your components needs to declared here.
imports: [
RouterModule.forRoot([
{ path: 'main',
component: MainComponent,
canActivate: [AuthGuard],
children: [{ path: '', component: AccountMainComponent },
{ path: 'financial-accounts', component: FinancialAccountsComponent },
{ path: 'system-config', component: ConfigSysComponent },
{ path: 'conciliacao', component: ConciliacaoContabilComponent },
{ path: 'report', component: ReportComponent },
]}
]) //this defines/configures all the routes of the application
],
exports: [RouterModule] //this will export RouterModule through which we will be able to discover our routes
})
export class MainRouting { }
现在,我们的路由模块已准备就绪,可以处理请求。现在,我们还有两件事待处理。
<span>
<a routerLink="/main">
<img src="/assets/icons/logo_white.svg" class="logo">
</a>
</span>
接下来,app.component.html是我们的根组件,非常适合加载路线。只要将以下代码添加到文件中,只要它在文件中的任何地方都可以使用。
<router-outlet></router-outlet>
现在我们应该很好地浏览黑白组件。
参考:https://angular.io/tutorial/toh-pt5#add-routeroutlet
学习Angular首先尝试此项目:https://angular.io/tutorial
答案 2 :(得分:-1)
你必须添加routerLinkActive =&#34; active&#34;对于这样的标签:
<span>
<a routerLink="/main" routerLinkActive="active">
<img src="/assets/icons/logo_white.svg" class="logo">
</a>
</span>
修改强> 路由器对象也应该有pathmatch:&#39; full&#39;:
children: [{ path: '', component: AccountMainComponent, pathMatch: 'full' }