在 Angular 2 应用中,将组件数据展示到用户界面是前端开发的基础环节。本文围绕插值表达式、*ngFor 循环与 *ngIf 条件渲染三种核心模板语法,提供可直接运行的 TypeScript 示例。通过对比不同数据结构的绑定方式,帮助开发者快速判断何时使用简单插值、何时引入结构型指令,从而构建清晰可维护的视图层。
使用插值表达式绑定组件属性
插值表达式是 Angular 模板中最直接的数据绑定方式,语法为 {{ 属性名 }}。Angular 会在变更检测周期中自动读取组件实例的对应属性,并将其值渲染到 DOM 中。
以下示例基于 Angular 2 TypeScript 环境配置。在 app/app.component.ts 中定义组件类与内联模板:
import { Component } from '@angular/core';
@Component({
selector: 'my-app',
template: `
{{title}}
我喜欢的网站: {{mySite}}
`
})
export class AppComponent {
title = "站点列表";
mySite = '菜鸟教程';
}模板使用反引号(`)包裹多行字符串,而非单引号。运行后浏览器将显示 title 与 mySite 的实际值。

通过 *ngFor 遍历数组与对象列表
当需要展示集合数据时,可使用结构型指令 *ngFor。该指令会遍历可迭代对象,并为每个元素生成对应的 DOM 节点。注意指令名称前的星号(*)是语法糖,代表 Angular 会在底层创建 元素。
遍历基础字符串数组
修改 app/app.component.ts,在模板中添加 列表并使用 *ngFor:
import { Component } from '@angular/core';
@Component({
selector: 'my-app',
template: `
{{title}}
我喜欢的网站: {{mySite}}
网站列表:
-
{{ site }}
`
})
export class AppComponent {
title = "站点列表";
sites = ['菜鸟教程', 'Google', 'Taobao', 'Facebook'];
mySite = this.sites[0];
}渲染结果将按数组顺序输出每个站点名称。

遍历自定义对象数组
实际项目中数据通常具有结构化特征。可在 app/site.ts 中定义数据模型:
export class Site {
constructor(
public id: number,
public name: string) { }
}在组件中导入该模型并实例化对象数组,模板中通过 site.name 访问属性:
import { Component } from '@angular/core';
import { Site } from './site';
@Component({
selector: 'my-app',
template: `
{{title}}
我喜欢的网站: {{mySite.name}}
网站列表:
-
{{ site.name }}
`
})
export class AppComponent {
title = "站点列表";
sites = [
new Site(1, '菜鸟教程'),
new Site(2, 'Google'),
new Site(3, 'Taobao'),
new Site(4, 'Facebook')
];
mySite = this.sites[0];
}该方式适用于需要绑定多个字段或后续扩展数据结构的场景。
利用 *ngIf 实现条件渲染
*ngIf 用于根据布尔表达式动态添加或移除 DOM 元素。与 CSS 的 display: none 不同,*ngIf 为 false 时元素不会存在于 DOM 树中,可减少不必要的渲染开销。
在模板中添加条件判断,当 sites 数组长度大于 3 时显示提示信息:
import { Component } from '@angular/core';
import { Site } from './site';
@Component({
selector: 'my-app',
template: `
{{title}}
我喜欢的网站: {{mySite.name}}
网站列表:
-
{{ site.name }}
3">你有很多个喜欢的网站!
`
})
export class AppComponent {
title = "站点列表";
sites = [
new Site(1, '菜鸟教程'),
new Site(2, 'Google'),
new Site(3, 'Taobao'),
new Site(4, 'Facebook')
];
mySite = this.sites[0];
}运行后,页面底部将显示条件满足时的提示文本。

注:Angular 2 属于较早期版本,现代 Angular(v14+)已全面采用独立组件与基于控制流的模板语法(如 @for、@if)。若在新项目中使用,建议参考官方最新文档进行语法迁移,但核心数据绑定思想保持一致。

