angular 指令

本文详细介绍了Angular中的指令,包括组件、属性型指令和结构型指令。重点讲解了内置的属性型指令如ngClass、ngStyle和ngModel,以及结构型指令ngIf、ngFor和ngSwitch的使用方法,如ngFor的trackBy属性用于提高性能。同时,文章还涵盖了属性型指令的应用、事件处理和阻止Angular处理过程的ngNonBindable。
摘要由CSDN通过智能技术生成

Angular 指令的不同类型如下:

  • 组件 —— 带有模板的指令。这种指令类型是最常见的指令类型。
  • 属性型指令 —— 更改元素、组件或其他指令的外观或行为的指令。
  • 结构型指令 —— 通过添加和删除 DOM 元素来更改 DOM 布局的指令。由于结构型指令会在 DOM 中添加和删除节点,因此每个元素只能应用一个结构型指令

内置指令

内置属性型指令:

常见的内置属性型指令 作用
NgClass 添加和删除一组 CSS 类
NgStyle 添加和删除一组 HTML 样式
NgModel 将数据双向绑定添加到 HTML 表单元素

ngClass添加和删除类

  • 可用表达式
  • 可用对象,key值为class名,value值为布尔类型
//使用表达式
<div [ngClass]="'svg-notification-' + type">11</div>
<div [ngClass]="isSpecial ? 'special' : ''">This div is special</div>

//使用对象
<div [ngClass]="{'status-flag-process': data.controlStatus === 1, 'status-flag-success': data.controlStatus === 2}">22</div>
<div [ngClass]="currentClasses">This div is initially saveable, unchanged, and special.</div>

this.currentClasses =  {
      saveable: true,
      modified: false,
      special:  true
    };         

ngStyle设置内联样式

使用对象,key值为style名,value是三元表达式返回对应的样式值

//使用对象
<div [ngStyle]="{'padding-right': data?.flag === 2 ? '8px' : '0','width': type === 'blank' ? '100%' : 'calc(100% - 50px)'}">11</div>
<div [ngStyle]="currentStyles">22</div>


public this.currentStyles = {
      'font-style':  this.canSave      ? 'italic' : 'normal',
      'font-weight': !this.isUnchanged ? 'bold'   : 'normal',
      'font-size':   this.isSpecial    ? '24px'   : '12px'
    };
  }

ngModel显示和更新属性

使用 ngModel 指令显示数据属性,并在用户进行更改时更新该属性。

  1. 使用ngModel需要导入FormsModule(从 FormsModule 中导入 ngModel 指令),并将其添加到 NgModule 的 imports 列表中
//src/app/app.module.ts
import { FormsModule } from '@angular/forms';
@NgModule({
imports: [
    FormsModule
 ]
 })
 export class AppModule { }
  1. 在 HTML 的 <form> 元素上添加 [(ngModel)] 绑定,并将其设置为等于此属性,这里是 name。
    [(ngModel)] 语法只能设置数据绑定属性
 <input [(ngModel)]="currentItem.name" id="example-n
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值