编辑:对于以后在此遇到问题的人,我最终使用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},
];
/ ngIf
,ngSwitch
和一些文档其他可能的解决方案,但在将它们连接到此特定方案时遇到了麻烦。
答案 0 :(得分:2)
您可以使用内容投影来实现,它基本上可以让您将html代码传递到内部呈现的组件。尽管目前还没有很好的官方角度文档(至少我不知道),this post对此进行了详细解释