這篇文章帶大家了解一下angular中的指令(Directive)和管道(Pipe),簡單介紹一下相關知識點:內建指令和自訂指令,內建管道和自訂管道,希望對大家有幫助!
#指令是 Angular 提供的操作 DOM
的路徑。指令分為屬性指令
和結構指令
。
屬性指令:修改現有元素的外觀或行為,使用 []
包裹。
結構指令:增加、刪除 DOM 節點以修改佈局,使用*
作為指令前綴。 【相關教學推薦:《angular教學》】
1、內建指令
#1.1 *ngIf
根據條件
渲染
DOM 節點或
DOM 節點。 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:js;toolbar:false;"><div *ngIf="data.length == 0">没有更多数据</div></pre><div class="contentsignin">登入後複製</div></div><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:js;toolbar:false;"><div *ngIf="data.length > 0; then dataList else noData"></div>
<ng-template #dataList>课程列表</ng-template>
<ng-template #noData>没有更多数据</ng-template></pre><div class="contentsignin">登入後複製</div></div>
ng-template
是用來定義模板的,當使用ng-template
定義好一個模板之後,可以用ng-container
和
指令來進行使用。 <ng-template #loading>
<button (click)="login()">login</button>
<button (click)="sigup()">sigup</button>
</ng-template>
<ng-container *ngTemplateOutlet="loading">
</ng-container>
1.2 [hidden]
#根據條件
顯示
DOM 節點或
DOM 節點(display)。 <div [hidden]="data.length == 0">课程列表</div>
<div [hidden]="data.length > 0">没有更多数据</div>
1.3 *ngFor
#遍歷資料產生HTML結構interface List {
id: number
name: string
age: number
}
list: List[] = [
{ id: 1, name: "张三", age: 20 },
{ id: 2, name: "李四", age: 30 }
]
<li
*ngFor="
let item of list;
let i = index;
let isEven = even;
let isOdd = odd;
let isFirst = first;
let isLast = last;
"
>
</li>
<li *ngFor="let item of list; trackBy: identify"></li>
identify(index, item){
return item.id;
}
<div [appHover]="{ bgColor: 'skyblue' }">Hello Angular</div>
import { AfterViewInit, Directive, ElementRef, HostListener, Input } from "@angular/core" // 接收参的数类型 interface Options { bgColor?: string } @Directive({ selector: "[appHover]" }) export class HoverDirective implements AfterViewInit { // 接收参数 @Input("appHover") appHover: Options = {} // 要操作的 DOM 节点 element: HTMLElement // 获取要操作的 DOM 节点 constructor(private elementRef: ElementRef) { this.element = this.elementRef.nativeElement } // 组件模板初始完成后设置元素的背景颜色 ngAfterViewInit() { this.element.style.backgroundColor = this.appHover.bgColor || "skyblue" } // 为元素添加鼠标移入事件 @HostListener("mouseenter") enter() { this.element.style.backgroundColor = "pink" } // 为元素添加鼠标移出事件 @HostListener("mouseleave") leave() { this.element.style.backgroundColor = "skyblue" } }
#管道的作用是
格式化元件模板資料
1、內建管道
{{ date | date: "yyyy-MM-dd" }}
以上是angular學習之聊指令與管道的詳細內容。更多資訊請關注PHP中文網其他相關文章!