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