ホームページ  >  記事  >  ウェブフロントエンド  >  Angular 学習でディレクティブ命令について語る

Angular 学習でディレクティブ命令について語る

青灯夜游
青灯夜游転載
2022-11-04 19:39:211525ブラウズ

この記事では、Angular の学習を継続し、angular でのディレクティブ命令の使用方法を簡単に理解します。皆さんのお役に立てれば幸いです。

Angular 学習でディレクティブ命令について語る

ディレクティブは、DOM を変更して追加の動作を追加するために使用されます。 [関連チュートリアルの推奨事項: angularjs ビデオ チュートリアル プログラミング ビデオ ]

Angular 組み込み命令 angular.cn/guide/built…

たとえば、開発で一般的に使用される *ngFor は、DOM 要素を走査してレンダリングするために使用される命令です。

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

Forプログラミング関連の知識については、

プログラミング教育

をご覧ください。 !

以上がAngular 学習でディレクティブ命令について語るの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はjuejin.cnで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。