Angular4 自定義指令

1. 創(chuàng)建指令文件

ng generate directive highlight

2.在highlight.directive.ts 中加入自定義樣式(使用?HostListener?裝飾器添加兩個(gè)事件處理器,它們會(huì)在鼠標(biāo)進(jìn)入或離開(kāi)時(shí)進(jìn)行響應(yīng))

import { Directive, ElementRef, HostListener } from '@angular/core';

@Directive({

? selector: '[appHighlight]'

})

export class HighlightDirective {

@Input('appHighlight')??highlightColor: string;? //highlightColor是appHighlight指令的別名

? constructor(private el: ElementRef) {

? //? el.nativeElement.style.backgroundColor = 'yellow';

? }

? private highlight(color: string) {

? ? this.el.nativeElement.style.backgroundColor = color;

? }

? @HostListener('mouseenter') onMouseEnter() {

? ? this.highlight(this.highlightColor);

? }

? @HostListener('mouseleave') onMouseLeave() {

? ? this.highlight(null);

? }

}


3.在app.module.ts 中引入指令文件

import { HighlightDirective } from './highlight.directive';

declarations:[?HighlightDirective ]

4.在app.component.html 中應(yīng)用指令

<p appHighlight>Highlight me!</p>? // 直接應(yīng)用

5.運(yùn)行本應(yīng)用并確認(rèn):當(dāng)把鼠標(biāo)移到?p?上的時(shí)候,背景色就出現(xiàn)了,而移開(kāi)的時(shí)候,它消失了

使用?@Input?數(shù)據(jù)綁定向指令傳遞值

6.在app.component.ts中定義屬性

color = 'yellow';

7. 在app.component.html 中應(yīng)用指令

?<p [appHighlight]="color"?>?Highlight me!</p>??

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容