Angular 使用总结(三)组件之结构指令
Angular 应用几乎不可能不用结构指令
总结常见的结构指令:
1. *ngFor 用来迭代生成多个元素,很常用
举个例子,这个table就是用for迭代出来的,好用:
html:
<table> <tr> <th>name</th> <th>age</th> <th>address</th> </tr> <tr *ngFor="let stu of stus"> <td>{{stu.name}}</td> <td>{{stu.age}}</td> <td>{{stu.address}}</td> </tr> </table>
ts:
stus = [ { name: 'zhangsan', age: '20', address: 'China Shanghai' }, { name: 'lisi', age: '20', address: 'England london' }, { name: 'wangwu', age: '20', address: 'America NewYork' }, { name: 'zhangsan2', age: '20', address: 'China Xian' }, { name: 'zhangsan3', age: '20', address: 'China Hangzhou' }, ];
css:
table { border-collapse: collapse; text-align: left; } table td, table th { border: 1px solid #cad9ea; color: #666; height: 25px; padding: 3px; text-indent: 3px; } table th { text-align: center; background-color: #CCE8EB; width: 150px; padding: 5px; } table tr:nth-child(odd) { background: #fff; } table tr:nth-child(even) { background: #F5FAFA; }
注:可迭代的不仅仅是原生DOM元素,还包括 Angular组件
2. *ngIf 添加或者删除元素
举个例子:
添加元素:
删除元素:
实现:
<input [(ngModel)]="isShow" type="checkbox"> <div *ngIf="isShow">This is a div element</div>
3. *ngSwitch 用来根据各种情况,选择生成特定元素
注:虽然ngSwitch不是一个结构性指令,其实是属性型指令,但是它实现的功能和前面的很类似,所以也放到这里:
html:
<label><input type="radio" name="type" value="comp1" [(ngModel)]="compType">First Component</label> <label><input type="radio" name="type" value="comp2" [(ngModel)]="compType">Second Component</label> <label><input type="radio" name="type" value="comp3" [(ngModel)]="compType">Third Component</label> <ng-container [ngSwitch]="compType"> <div *ngSwitchCase="'comp1'">This is Our First Component</div> <div *ngSwitchCase="'comp2'">This is Our Second Component--><input></div> <div *ngSwitchCase="'comp3'">This is Our Third Component<button>button</button></div> <div *ngSwitchDefault>This is default</div> </ng-container>
分类:
Angular 使用
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 【杂谈】分布式事务——高大上的无用知识?