Home  >  Article  >  Web Front-end  >  Angular learning talks about Directive instructions

Angular learning talks about Directive instructions

青灯夜游
青灯夜游forward
2022-11-04 19:39:211545browse

This article will take you to continue learning angular and briefly understand the use of Directive instructions in angular. I hope it will be helpful to everyone!

Angular learning talks about Directive instructions

Directive is used to modify the DOM to add additional behavior to it. [Related tutorial recommendations: angularjs video tutorial, Programming video]

Angular built-in instructionsangular.cn/guide/built…

For example, *ngFor commonly used in development is an instruction used to traverse and render DOM elements.

You can refer to the link below. I have written use cases for these instructions.

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

Here I will mainly introduce how to customize your own instructions

For example, we want the DOM background color to switch when the mouse moves in/out

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

Let’s implement this example

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;
  }
}

For more programming-related knowledge, please visit:Programming Teaching! !

The above is the detailed content of Angular learning talks about Directive instructions. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:juejin.cn. If there is any infringement, please contact admin@php.cn delete