溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Angular的Directive指令怎么使用

發(fā)布時(shí)間:2022-11-07 09:42:04 來(lái)源:億速云 閱讀:199 作者:iii 欄目:web開發(fā)

這篇文章主要介紹“Angular的Directive指令怎么使用”的相關(guān)知識(shí),小編通過(guò)實(shí)際案例向大家展示操作過(guò)程,操作方法簡(jiǎn)單快捷,實(shí)用性強(qiáng),希望這篇“Angular的Directive指令怎么使用”文章能幫助大家解決問(wèn)題。

Directive 用來(lái)修飾 DOM 給它添加額外的行為。

Angular 內(nèi)置指令 angular.cn/guide/built…

例如 開發(fā)中常用的 *ngFor 就是一個(gè)指令 用來(lái)遍歷渲染 DOM 元素

這里我主要介紹一下如何自定義一個(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>

下面 我們來(lái)實(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;
  }
}

關(guān)于“Angular的Directive指令怎么使用”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí),可以關(guān)注億速云行業(yè)資訊頻道,小編每天都會(huì)為大家更新不同的知識(shí)點(diǎn)。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI