【发布时间】:2018-02-24 09:36:49
【问题描述】:
我是 Angular 2 的新手,我有一个名为 Register 的组件,在这 1 个组件中我有 5 个 HTML 页面,单击第一个注册页面我将转到第二个注册页面,然后单击第二个注册页面我会进入第三个注册页面。如何在 1 个组件中制作 5 个 HTML 页面我的意思是有没有办法为每个组件实现多个模板?怎么做路由?主要意图是拥有单独的 HTML 和 SCSS 文件以及路由逻辑。
到目前为止,我正在使用 ngIf 渲染页面,这使我的页面变得非常冗长。有没有办法实现这一目标?
<!--View 1-->
<div class="open-card-BG" *ngIf="registerView=='regView1'">
Register Page 1
</div>
<!--View 2-->
<div class="open-card-BG" *ngIf="registrationView=='regView2'">
Register Page 2
</div>
@Component({
selector: 'register-page',
templateUrl: './register-page.component.html',
styleUrls: ['./register-page.component.scss'],
providers : [RegisterService,Configuration,LocalStorageService]
})
ngOnInit() {
this.registerView= "regView1";
}
changeView(view) {
this.registerView= view;
}
previousView(view) {
this.registerView= view;
}
【问题讨论】:
-
您能更具体地说明您想要实现的目标吗?您似乎有一个包含不同 RegisterViews 的 RegisterPage 组件?您希望这些具有不同的模板/样式吗?因为如果它们在标记和样式方面不同,那么它们应该被分离为单个组件。如果它们的功能匹配,或者如果它们共享大量相同的代码,您可以创建类似于基础组件的东西,您可以从中扩展子视图。
-
对于每个 html 你应该创建一个新组件然后在 ngif 中你可以使用这个组件
标签: angular typescript angular2-routing angular2-template