为什么RoutingModule无法在我的角度应用程序中工作?

时间:2018-10-07 17:40:28

标签: angular angular5 angular6 angular-routing

edit:请注意,在尝试将我的应用程序模块拆分为功能模块以进行延迟加载之前,一切工作正常

所以我试图将我的应用程序模块拆分为其他功能模块,以便可以在我的角度应用程序中使用延迟加载,

但是我遇到了错误

  

“未捕获的错误:模板解析错误:无法绑定到'routerLink'   因为它不是'h4'的已知属性。 (“ class =” col-3“>               ] routerLink =“ / profile / {{castra.id}} / public”>                 {{castra.name}}                ”):ng:///CastraModule/CastrasComponent.html@18:85       在语法错误(compiler.js:215)       在TemplateParser.push ../ node_modules/@angular/compiler/fesm5/compiler.js.TemplateParser.parse   (compiler.js:14687)       在JitCompiler.push ../ node_modules/@angular/compiler/fesm5/compiler.js.JitCompiler._parseTemplate中   (compiler.js:22687)       在JitCompiler.push ../ node_modules/@angular/compiler/fesm5/compiler.js.JitCompiler._compileTemplate中   (compiler.js:22674)       在compile.js:22617       在Set.forEach()       在JitCompiler.push ../ node_modules/@angular/compiler/fesm5/compiler.js.JitCompiler._compileComponents   (compiler.js:22617)       在compile.js:22527       在Object.then(compiler.js:206)       在JitCompiler.push ../ node_modules/@angular/compiler/fesm5/compiler.js.JitCompiler._compileModuleAndComponents   (compiler.js:22526)“

这是我的功能模块

(Imports)

@NgModule({
declarations: [
CastrasComponent,
ProfileComponent,
PublicComponent,
MenuComponent,
ReservationComponent
],
imports: [
CommonModule,
TestRoutingModule
]
})
export class CastraModule { }

我的TestRoutingModule

(Imports)
const testRoutes: Routes = [
{path: 'test', component: TestComponent},
{
path: 'profile/:id', component: ProfileComponent,
children: [
  {path: '', redirectTo: '/profile/:id/public', pathMatch: 'full'},
  {path: 'public', component: PublicComponent},
  {path: 'menu', component: MenuComponent},
  {path: 'reservation', component: ReservationComponent},
  ]
 }
]

@NgModule({
imports: [
RouterModule.forChild(TestRoutes)
],
exports: [RouterModule]
})
export class TestRoutingModule { }

并且测试模块被导入到App模块中,那是什么问题?

2 个答案:

答案 0 :(得分:1)

您可能需要?将其包装在 <a> and </a>

<h4><a routerLink="menu">Part1</a></h4>

编辑

您需要将RouterModule添加到每个使用路由器指令(例如RouterOutlet或routerLink)的模块的 imports: [] 中。

答案 1 :(得分:0)

您可以尝试使用RouterModule.forRoot(TestRoutes)代替RouterModule.forChild(TestRoutes),它可以在我的路由器文件中使用