本篇文章帶大家繼續(xù)angular的學(xué)習(xí),簡(jiǎn)單了解一下angular中Directive指令的使用,希望對(duì)大家有所幫助!
前端(vue)入門到精通課程:進(jìn)入學(xué)習(xí)
Apipost = Postman + Swagger + Mock + Jmeter 超好用的API調(diào)試工具:點(diǎn)擊使用
Directive 用來修飾 DOM 給它添加額外的行為。【相關(guān)教程推薦:angularjs視頻教程、編程視頻】
Angular 內(nèi)置指令 angular.cn/guide/built…
例如 開發(fā)中常用的 *ngFor
就是一個(gè)指令 用來遍歷渲染 DOM 元素
可以參考下面的 Link 我為這些指令都編寫了用例
rick-chou.github.io/angular-tut…
這里我主要介紹一下如何自定義一個(gè)自己的指令
舉個(gè)例子 我們希望鼠標(biāo)移入/移出的時(shí)候 DOM 背景色有切換
<!-- 默認(rèn) 鼠標(biāo)移入時(shí)背景變成黃色 --> <p highlight>Highlight me!</p> <!-- 指定顏色 鼠標(biāo)移入時(shí)背景變成紅色 --> <p highlight="red">Highlight me!</p>
登錄后復(fù)制
下面 我們來實(shí)現(xiàn)這個(gè)例子
import { Directive, ElementRef, HostListener, Input } from '@angular/core'; // Directive裝飾器 可以接收一個(gè)對(duì)象參數(shù) 但是現(xiàn)在我們還不需要 @Directive() export class HighlightDirective { // 給這個(gè)指定定義一個(gè) highlight 屬性 @Input() highlight = 'yellow'; // 這里的 el 就是被我們的指令直接修飾的那個(gè)dom constructor(private el: ElementRef) { // 你可以在這里直接操作 dom } // 給這個(gè)dom定義一個(gè)mouseenter的監(jiān)聽器 后面的名字可以自定定義 @HostListener('mouseenter') onMouseEnter() { this.highlight(this.highlight); } // 添加鼠標(biāo)移出的監(jiān)聽器 綁定對(duì)應(yīng)的事件邏輯 @HostListener('mouseleave') onMouseLeave() { this.highlight(''); } private highlight(color: string) { this.el.nativeElement.style.backgroundColor = color; } }
登錄后復(fù)制