内置指令

内置属性型指令

属性型指令会监听和修改其它HTML元素或组件的行为、元素属性(Attribute)、DOM属性(Property)。

NgClass

形式:[ngClass]=\"statement\"

通过绑定到NgClass,可以同时添加或移除多个类。

setCurrentClasses() {
 this.currentClasses = {
  \'saveable\': this.canSave,
  \'modified\': !this.isUnchanged,
  \'special\': this.isSpecial
 };
}

<div [ngClass]=\"currentClasses\">This div</div>

NgStyle

形式:[ngStyle]=\"statement\"

NgStyle绑定可以同时设置多个内联样式。

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

<div [ngStyle]=\"currentStyles\">This div</div>

NgModel

形式:[(ngModel)]=\"statement\"

使用[(ngModel)]双向绑定到表单元素。

<input [(ngModel)]=\"currentHero.name\">

使用 ngModel 时需要 FormsModule

内置结构型指令

NgIf

形式:*ngIf=\"statement\"

<app-hero-detail *ngIf=\"isActive\"></app-hero-detail>

NgFor

形式:*ngFor=\"statement\"

<div *ngFor=\"let hero of heroes\">{{hero.name}}</div>

NgSwitch

形式:[ngSwitch]=\"statement\"

<div [ngSwitch]=\"currentHero.emotion\">
 <app-happy-hero *ngSwitchCase=\"\'happy\'\" [hero]=\"currentHero\"></app-happy-hero>
 <app-sad-hero *ngSwitchCase=\"\'sad\'\" [hero]=\"currentHero\"></app-sad-hero>
 <app-unknown-hero *ngSwitchDefault [hero]=\"currentHero\"></app-unknown-hero>
</div>

NgSwitch实际上包括三个相互协作的指令:NgSwitch、NgSwitchCase 和 NgSwitchDefault

模板引用变量 ( #var )

模板引用变量通常用来引用模板中的某个DOM元素,它还可以引用Angular组件或指令或Web Component。

<input #phone placeholder=\"phone number\">

<button (click)=\"callPhone(phone.value)\">Call</button>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

收藏 打印