原文: https://howtodoinjava.com/angular/angular-templates-and-views/

1. 什么是 Angular 模板和视图

模板HTML 代码段,它告诉 Angular 如何在 angular 应用中渲染组件。

模板立即与组件相关联,以定义该组件的视图

Angular 模板和视图 - 图1

2. Angular 视图层次结构

该组件还可以包含视图层次结构,这些层次结构具有嵌入的视图,这些视图定义或与其他组件相关联。

Angular 模板和视图 - 图2

视图层次结构可以包含来自同一 Ng 模块中组件的视图,但是它也可以包含来自不同 Ng 模块中定义的组件的视图。

关于视图层次结构的要点如下:

  • 它是相关视图的树,可以充当一个独立的单元。
  • 根视图通常称为组件的宿主视图
  • 它在 Angular 变化检测中起着重要作用。

2.1 查看层次结构示例

下图显示了管理超级英雄和危机中心的应用的视图层次结构。

Angular 模板和视图 - 图3

  • 应用组件位于根级别,称为主机视图,其中包含英雄危机中心组件。
  • 英雄组件充当其子组件英雄列表英雄详细信息的宿主视图,它们将具有各自的视图。
  • 同样,危机中心组件还托管两个子组件,分别包含针对危机列表危机详细信息组件的视图。

在此,层次结构中的每个组件都可以具有与其关联的视图。

3. 模板类型

有两种方法可以在 Angular 组件中定义模板。

3.1 内联模板

内联模板是通过将 HTML 代码放在“反引号”中定义的,并使用@Component装饰器的模板属性链接到组件元数据。

  1. import { Component, OnInit } from '@angular/core';
  2. @Component({
  3. selector: 'app-zipcode',
  4. template: `
  5. <p>
  6. zipcode inline template
  7. </p>
  8. `,
  9. styleUrls: ['./zipcode.component.css']
  10. })
  11. export class ZipcodeComponent implements OnInit {
  12. constructor() { }
  13. ngOnInit() { }
  14. }

要使用@angular/cli定义内联模板,请使用以下命令:

  1. ng generate component zipcode -it

3.2 模板文件

模板是在单独的 HTML 文件中定义的,并使用@Component装饰器的templateUrl属性链接到组件元数据,例如:

  1. <p>
  2. zipcode separate HTML template
  3. </p>
  1. import { Component, OnInit } from '@angular/core';
  2. @Component({
  3. selector: 'app-zipcode',
  4. templateUrl: './zipcode.component.html',
  5. styleUrls: ['./zipcode.component.css']
  6. })
  7. export class ZipcodeComponent implements OnInit
  8. {
  9. constructor() { }
  10. ngOnInit() {
  11. }
  12. }

学习愉快!