带有多个模板/ HTML文件的角度组件

时间:2019-03-29 21:26:35

标签: javascript angular angular-ui-router

编辑:对于以后在此遇到问题的人,我最终使用router-out解决了此问题。 I found this YouTube tutorial pretty helpful.

我有一个具有动态内容的组件class Vector2d: def __init__(self, x, y): self.x = float(x) self.y = float(y) def __iter__(self): return (i for i in (self.x, self.y)) v=Vector2d(1,2) x1,x2=v print(x1,x2) iv=iter(v) print(next(iv)) print(next(iv)) Contents),就像博客的基本布局相同,但每个页面或页面的文本/图像/链接/ HTML的混合方式不同帖子。

<app-contents></app-contents

我觉得这个<div class="wrapper"> <app-contents></app-contents> </div> 组件可以生成不同的组件,而可以使用不同的HTML文件或不同的模板。理想情况下,我可以将模板分成各自的HTML文件。 Contents组件结构可能像这样:

Contents

我希望- contents - contents.component.css // <--- referenced by all contents templates - contents.component.html // <--- default template - lesson1.contents.component.html - lesson2.contents.component.html - lesson3.contents.component.html - lesson4.contents.component.html - lesson5.contents.component.html - contents.component.ts - contents.component.spec.ts 包含带有一系列链接的默认模板。像这样:

<app-contents></app-contents>

然后,在<ol> <li><a [routerLink]="['/lessons', 'lesson-1']">Lesson 1</a></li> <li><a [routerLink]="['/lessons', 'lesson-2']">Lesson 2</a></li> <li><a [routerLink]="['/lessons', 'lesson-3']">Lesson 3</a></li> <li><a [routerLink]="['/lessons', 'lesson-4']">Lesson 4</a></li> <li><a [routerLink]="['/lessons', 'lesson-5']">Lesson 5</a></li> </ol> 中,我将使用route参数设置路由,如下所示:

app.module.ts

在这一点上,我对要做的事情有些迷茫。 1)是否有更好的方法来加载这些基本共享组件信息(例如样式等)的不同模板,而不是上面的在组件内部包含多个HTML文件的方法?,并且< strong> 2)我应该从哪里去将此路径路由到正确的模板?我看过const appRoutes: Routes = [ { path: '', redirectTo: '/', pathMatch: 'full'}, { path: 'lessons/:lesson', component: ContentsComponent}, ]; / ngIfngSwitch和一些文档其他可能的解决方案,但在将它们连接到此特定方案时遇到了麻烦。

1 个答案:

答案 0 :(得分:2)

您可以使用内容投影来实现,它基本上可以让您将html代码传递到内部呈现的组件。尽管目前还没有很好的官方角度文档(至少我不知道),this post对此进行了详细解释