Angular中什么是结构指令?怎么使用?
本篇文章带大家了解一下Angular 中结构指令模式,介绍一下结构指令是什么且怎么使用,希望对大家有所帮助!
在 Angular
中,有两种类型的指令。属性指令修改 DOM
元素的外观或者行为。结构指令添加或者移除 DOM
元素。
结构指令是 Angular
中最强大的特性之一,然而它们却频繁被误解。
如果你对学习 结构指令 感兴趣,那么现在我们就来接着阅读,并了解它们是什么,它们有什么用以及如何在项目中使用它们。【相关教程推荐:《angular教程》】
你将学到什么
在本文中,你将学到关于 Angular
结构指令模式的知识点。你会知道它们是什么并且怎么去使用它们。
学完本文,你将更好理解这些指令并在实际项目中使用它们。
Angular 结构指令是什么?
Angular
结构指令是能够更改 DOM
结构的指令。这些指令可以添加、移除或者替换元素
。结构指令在其名字之前都有 *
符号。
在 Angular
中,有三种标准的结构化指令。
-
*ngIf
- 根据表达式返回的布尔值,有条件地包含一个模版(即条件渲染模版) -
*ngFor
- 遍历数组 -
*ngSwitch
- 渲染每个匹配的是图
下面?是一个结构化指令的例子。语法长这样:
<element ng-if="Condition"></element>
条件语句必须是 true
或者 false
。
<div *ngIf="worker" class="name">{{worker.name}}</div>
Angular
生成一个 <ng-template>
的元素,然后应用 *ngIf
指令。这会将其转换为方括号 []
中的属性绑定,比如 [ngIf]
。<div>
的其余部分,包含类名,插入到 <ng-template>
里。比如:
<ng-template [ngIf]="worker"> <div class="name">{{worker.name}}</div> </ng-template>
Angular 结构指令是怎么工作的?
要使用结构指令,我们需要在 HTML
模版中添加一个带有指令的元素。然后根据我们在指令中设置的条件或者表达式添加、删除或者替换元素。
结构指令的例子
我们添加些简单的 HTML
代码。
app.component.html
文件内容如下:
<div style="text-align:center"> <h1> Welcome </h1> </div> <h2> <app-illustrations></app-illustrations></h2>
怎么使用 *ngIf
指令
我们根据条件来使用 *ngIf
来确定展示或者移除一个元素。ngIf
跟 if-else
很类似。
当表达式是 false
的时候,*ngIf
指令移除 HTML
元素。当为 true
时候,元素的副本会添加到 DOM
中。
完整的*ngIf
代码如下:
<h1> <button (click)="toggleOn =!toggleOn">ng-if illustration</button> </h1> <div *ngIf="!toggleOn"> <h2>Hello </h2> <p>Good morning to you,click the button to view</p> </div> <hr> <p>Today is Monday and this is a dummy text element to make you feel better</p> <p>Understanding the ngIf directive with the else clause</p>
怎么使用 *ngFor
指令
我们使用 *ngFor
指令来遍历数组。比如:
<ul> <li *ngFor="let wok of workers">{{ wok }}</li> </ul>
我们的组件 TypeScript
文件:
import { Component, OnInit } from '@angular/core'; @Component({ selector: 'app-illustrations', templateUrl: './illustrations.component.html', styleUrls: ['./illustrations.component.css'] }) export class IllustrationsComponent implements OnInit { workers: any = [ 'worker 1', 'worker 2', 'worker 3', 'worker 4', 'worker 5', ] constructor() { } ngOnInit(): void { } }
怎么使用 *ngSwitch
指令
译者加:这个指令实际开发很有用
我们使用 ngSwitch
来根据不同条件声明来决定渲染哪个元素。*ngSwitch
指令很像我们使用的 switch
语句。比如:
<div [ngSwitch]="Myshopping"> <p *ngSwitchCase="'cups'">cups</p> <p *ngSwitchCase="'veg'">Vegetables</p> <p *ngSwitchCase="'clothes'">Trousers</p> <p *ngSwitchDefault>My Shopping</p> </div>
在 typescript
中:
Myshopping: string = '';
我们有一个 MyShopping
变量,它有一个默认值,用于在模块中渲染满足条件的特定元素。
当条件值是 true
的时候,相关的元素就会被渲染到 DOM
中,其余的元素将被忽略。如果没有元素匹配,则渲染 *ngSwitchDefault
的元素到 DOM
中。
Angular 中我们什么时候需要用结构指令呢?
如果你想在 DOM
中添加或者移除一个元素的时候,你就应该使用结构指令。 当然,我们还可以使用它们来更改元素 CSS
样式,或者添加事件监听器。甚至可以使用它们来创建一个之前不存在的新的元素。
最好的规则是:当我们正在考虑操作 DOM 的时候,那么是时候使用结构指令了。
总结
结构指令是 Angular
中很重要的一部分,我们可以通过多种方式使用它们。
希望通过本文,读者能更好理解怎么去使用这些指令和什么时候去使用这些模式。
本文为译文,采用意译的形式。
原文地址:https://www.freecodecamp.org/news/angular-structural-directive-patterns-what-they-are-and-how-to-use-them/
更多编程相关知识,请访问:编程视频!!
以上是Angular中什么是结构指令?怎么使用?的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

本篇文章带大家深入了解一下angular的状态管理器NgRx,介绍一下NgRx的使用方法,希望对大家有所帮助!

本篇文章带大家继续angular的学习,简单了解一下Angular中的独立组件(Standalone Component),希望对大家有所帮助!

Angular.js是一种可自由访问的JavaScript平台,用于创建动态应用程序。它允许您通过扩展HTML的语法作为模板语言,以快速、清晰地表示应用程序的各个方面。Angular.js提供了一系列工具,可帮助您编写、更新和测试代码。此外,它还提供了许多功能,如路由和表单管理。本指南将讨论在Ubuntu24上安装Angular的方法。首先,您需要安装Node.js。Node.js是一个基于ChromeV8引擎的JavaScript运行环境,可让您在服务器端运行JavaScript代码。要在Ub

本篇文章给大家分享一个Angular实战,了解一下angualr 结合 ng-zorro 如何快速开发一个后台系统,希望对大家有所帮助!

随着互联网的飞速发展,前端开发技术也在不断改进和迭代。PHP和Angular是两种广泛应用于前端开发的技术。PHP是一种服务器端脚本语言,可以处理表单、生成动态页面和管理访问权限等任务。而Angular是一种JavaScript的框架,可以用于开发单页面应用和构建组件化的Web应用程序。本篇文章将介绍如何使用PHP和Angular进行前端开发,以及如何将它们

angular中怎么使用monaco-editor?下面本篇文章记录下最近的一次业务中用到的 monaco-editor 在 angular 中的使用,希望对大家有所帮助!

本篇文章带大家了解一下Angular中的独立组件,看看怎么在Angular中创建一个独立组件,怎么在独立组件中导入已有的模块,希望对大家有所帮助!
