首頁 >web前端 >js教程 >Angular學習之聊聊Directive指令

Angular學習之聊聊Directive指令

青灯夜游
青灯夜游轉載
2022-11-04 19:39:211651瀏覽

這篇文章帶大家繼續angular的學習,簡單了解一下angular中Directive指令的使用,希望對大家有幫助!

Angular學習之聊聊Directive指令

Directive 用來修飾 DOM 給它額外的行為。 【相關教學推薦:angularjs影片教學程式設計影片

#Angular 內建指令angular.cn/guide/built…

例如開發中常用的*ngFor 就是一個指令用來遍歷渲染DOM 元素

可以參考下面的Link 我為這些指令都寫了用例

rick-chou.github.io/angular-tut…

這裡我主要介紹如何自訂一個自己的指令

舉例我們希望滑鼠移入/移出的時候DOM 背景色有切換

<!-- 默认 鼠标移入时背景变成黄色 -->
<p highlight>Highlight me!</p>
<!-- 指定颜色 鼠标移入时背景变成红色 -->
<p highlight="red">Highlight me!</p>

下面我們來實作這個範例

import { Directive, ElementRef, HostListener, Input } from &#39;@angular/core&#39;;

// Directive装饰器 可以接收一个对象参数 但是现在我们还不需要
@Directive()
export class HighlightDirective {
  // 给这个指定定义一个 highlight 属性
  @Input() highlight = &#39;yellow&#39;;

  // 这里的 el 就是被我们的指令直接修饰的那个dom
  constructor(private el: ElementRef) {
    // 你可以在这里直接操作 dom
  }

  // 给这个dom定义一个mouseenter的监听器 后面的名字可以自定定义
  @HostListener(&#39;mouseenter&#39;) 
  onMouseEnter() {
    this.highlight(this.highlight);
  }

  // 添加鼠标移出的监听器 绑定对应的事件逻辑
  @HostListener(&#39;mouseleave&#39;) 
  onMouseLeave() {
    this.highlight(&#39;&#39;);
  }

  private highlight(color: string) {
    this.el.nativeElement.style.backgroundColor = color;
  }
}

更多程式相關知識,請造訪:程式教學! !

以上是Angular學習之聊聊Directive指令的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:juejin.cn。如有侵權,請聯絡admin@php.cn刪除