国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

如何在自定義 Angular 指令中使用 @HostBinding 和 @HostListener

這篇具有很好參考價(jià)值的文章主要介紹了如何在自定義 Angular 指令中使用 @HostBinding 和 @HostListener。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

簡(jiǎn)介

@HostBinding@HostListener 是 Angular 中兩個(gè)在自定義指令中非常有用的裝飾器。@HostBinding 允許你在承載指令的元素或組件上設(shè)置屬性,而 @HostListener 則允許你監(jiān)聽(tīng)宿主元素或組件上的事件。

在本文中,你將會(huì)在一個(gè)示例指令中使用 @HostBinding@HostListener 來(lái)監(jiān)聽(tīng)宿主上的 keydown 事件。

!輸入文本后,動(dòng)畫(huà)顯示每個(gè)字符更改顏色。消息拼寫(xiě)出:一種彩虹般的顏色。

它將把文本和邊框顏色設(shè)置為一組可用顏色中的隨機(jī)顏色。

先決條件

要完成本教程,你需要:

  • 在本地安裝 Node.js,你可以按照《如何安裝 Node.js 并創(chuàng)建本地開(kāi)發(fā)環(huán)境》進(jìn)行操作。
  • 對(duì)設(shè)置 Angular 項(xiàng)目和使用 Angular 組件有一定的了解可能會(huì)有所幫助。

本教程已經(jīng)在 Node v16.4.2、npm v7.18.1、angular v12.1.1 下驗(yàn)證通過(guò)。

使用 @HostBinding 和 @HostListener

首先,創(chuàng)建一個(gè)新的 RainbowDirective。

可以通過(guò) @angular/cli 完成:

ng generate directive rainbow --skip-tests

這將把新組件添加到應(yīng)用程序的 declarations 中,并生成一個(gè) rainbow.directive.ts 文件:


import { Directive } from '@angular/core';

@Directive({
  selector: '[appRainbow]'
})
export class RainbowDirective {

  constructor() { }

}

添加 @HostBinding@HostListener


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

@Directive({
  selector: '[appRainbow]'
})
export class RainbowDirective {

  possibleColors = [
    'darksalmon',
    'hotpink',
    'lightskyblue',
    'goldenrod',
    'peachpuff',
    'mediumspringgreen',
    'cornflowerblue',
    'blanchedalmond',
    'lightslategrey'
  ];

  @HostBinding('style.color') color!: string;
  @HostBinding('style.border-color') borderColor!: string;

  @HostListener('keydown') newColor() {
    const colorPick = Math.floor(Math.random() * this.possibleColors.length);

    this.color = this.borderColor = this.possibleColors[colorPick];
  }

}

然后可以在元素上使用該指令:


<input type="text" appRainbow />

我們的 Rainbow 指令使用了兩個(gè) @HostBinding 裝飾器來(lái)定義兩個(gè)類(lèi)成員,一個(gè)綁定到宿主的 style.color,另一個(gè)綁定到 style.border-color

你還可以綁定到宿主的任何類(lèi)、屬性或?qū)傩浴?/p>

以下是一些可能綁定的更多示例:

  • @HostBinding('class.active')
  • @HostBinding('disabled')
  • @HostBinding('attr.role')

帶有 'keydown' 參數(shù)的 @HostListener 監(jiān)聽(tīng)宿主上的 keydown 事件。我們定義了一個(gè)附加到該裝飾器的函數(shù),該函數(shù)改變了 colorborderColor 的值,我們的更改會(huì)自動(dòng)反映在宿主上。

結(jié)論

在本文中,你使用了 @HostBinding@HostListener 在一個(gè)示例指令中監(jiān)聽(tīng)宿主上的 keydown 事件。

如果你想了解更多關(guān)于 Angular 的內(nèi)容,請(qǐng)查看我們的 Angular 主題頁(yè)面,了解練習(xí)和編程項(xiàng)目。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-834583.html

到了這里,關(guān)于如何在自定義 Angular 指令中使用 @HostBinding 和 @HostListener的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • springboot在自定義攔截器中使用@Value獲取值失敗及@RefreshScope 不生效問(wèn)題

    @RefreshScope注解用于標(biāo)識(shí)在服務(wù)配置中心配置更新時(shí),當(dāng)前 Bean 需要重新注入以獲取最新的配置值。但是在這段代碼中,@RefreshScope注解標(biāo)注在攔截器類(lèi)上,并不會(huì)使攔截器實(shí)例重新注入。 通常情況下,攔截器是在應(yīng)用程序啟動(dòng)時(shí)由 Spring Framework 實(shí)例化和初始化的,而不是在請(qǐng)

    2024年02月04日
    瀏覽(27)
  • 【快應(yīng)用】如何在快應(yīng)用中使用自定義指令

    【】 操作DOM、自定義指令 【問(wèn)題背景】 在快應(yīng)用中,有些情況下我們需要對(duì)?DOM?元素進(jìn)行訪問(wèn),或者在元素創(chuàng)建、更新、銷(xiāo)毀過(guò)程中處理相應(yīng)的業(yè)務(wù)邏輯,通過(guò)快應(yīng)用文檔中現(xiàn)有的方法實(shí)現(xiàn)不了,我們需要使用自定義指令去完成我們想要的操作,這里就介紹下快應(yīng)用

    2024年02月07日
    瀏覽(32)
  • Angular 指令介紹及使用(三)

    在 Angular 中,指令是一種機(jī)制,用于擴(kuò)展和修改組件的行為和外觀。指令可以由開(kāi)發(fā)者自定義,也可以是 Angular 框架自帶的一些內(nèi)置指令。通過(guò)使用指令,我們可以在 HTML 模板中通過(guò)屬性或元素名來(lái)操作組件。 Angular 中的指令主要分為三種類(lèi)型: 組件指令(Component Directives)

    2024年02月05日
    瀏覽(11)
  • c語(yǔ)言自定義頭文件是什么情況下使用?一般在什么情況下引用自定義的頭文件?一般在自定義頭文件中寫(xiě)什么代碼?

    C語(yǔ)言自定義頭文件是一種用來(lái)封裝函數(shù)和變量聲明的文件,它通常用于將一組相關(guān)的函數(shù)和變量的聲明集中在一個(gè)地方,以便在多個(gè)源文件中共享和重復(fù)使用。 一般情況下,我們會(huì)在以下幾種情況下引用自定義的頭文件: 當(dāng)我們需要在多個(gè)源文件中使用相同的函數(shù)或變量時(shí)

    2024年02月09日
    瀏覽(21)
  • angular中如何定義一個(gè)全局組件?

    angular中如何定義一個(gè)全局組件?

    需求,我們需要新建一個(gè)navBreadcrumb的全局組件。這是一個(gè)面包屑導(dǎo)航,在不同的頁(yè)面引入時(shí)傳入一個(gè)路由數(shù)組即可。 第一步:我們新建這個(gè)組件: 這里有幾個(gè)要注意的點(diǎn): 1 ---nav-breadcrumb.module----------這個(gè)文件時(shí)一定要的。angular和vue/react不同,modulecomponent,對(duì)于任何頁(yè)面而

    2024年02月12日
    瀏覽(26)
  • 如何在 Angular 中為響應(yīng)式表單創(chuàng)建自定義驗(yàn)證器

    簡(jiǎn)介 Angular 的 @angular/forms 包提供了一個(gè) Validators 類(lèi),支持諸如 required 、 minLength 、 maxLength 和 pattern 等有用的內(nèi)置驗(yàn)證器。然而,可能存在需要更復(fù)雜或自定義規(guī)則進(jìn)行驗(yàn)證的表單字段。在這種情況下,您可以使用自定義驗(yàn)證器。 在 Angular 中使用響應(yīng)式表單時(shí),您可以使用函

    2024年02月22日
    瀏覽(21)
  • 在自定義數(shù)據(jù)集上微調(diào)Alpaca和LLaMA

    在自定義數(shù)據(jù)集上微調(diào)Alpaca和LLaMA

    本文將介紹使用LoRa在本地機(jī)器上微調(diào)Alpaca和LLaMA,我們將介紹在特定數(shù)據(jù)集上對(duì)Alpaca LoRa進(jìn)行微調(diào)的整個(gè)過(guò)程,本文將涵蓋數(shù)據(jù)處理、模型訓(xùn)練和使用流行的自然語(yǔ)言處理庫(kù)(如Transformers和hugs Face)進(jìn)行評(píng)估。此外還將介紹如何使用grado應(yīng)用程序部署和測(cè)試模型。 首先,alpaca-l

    2024年02月17日
    瀏覽(18)
  • 帝國(guó)CMS在自定義列表中獲取當(dāng)前列表ID的方法

    本文實(shí)例講述了帝國(guó)CMS在自定義列表中獲取當(dāng)前列表ID的方法。分享給大家供大家參考,具體如下: 今天用帝國(guó)CMS做一個(gè)項(xiàng)目時(shí),發(fā)現(xiàn)帝國(guó)自定義列表中無(wú)法獲取當(dāng)前自定義列表的ID。分析帝國(guó)源碼后以現(xiàn),帝國(guó)默認(rèn)傳出的值為0。下面簡(jiǎn)單記錄一下如何通過(guò)修改源碼實(shí)現(xiàn)“帝

    2023年04月20日
    瀏覽(91)
  • 在自定義數(shù)據(jù)集上訓(xùn)練 YOLOv8 進(jìn)行目標(biāo)檢測(cè)

    在自定義數(shù)據(jù)集上訓(xùn)練 YOLOv8 進(jìn)行目標(biāo)檢測(cè)

    這是目標(biāo)檢測(cè)中令人驚嘆的 AI 模型之一。在這種情況下,您無(wú)需克隆存儲(chǔ)庫(kù)、設(shè)置要求并配置模型,就像在 YOLOv5 及其之前的版本中所做的那樣。 在 YOLOv8 中,不需要執(zhí)行這些手動(dòng)任務(wù)。您只需安裝 Ultralytics 即可,我將向您展示如何通過(guò)一個(gè)簡(jiǎn)單的命令安裝它。 這是一個(gè)提

    2024年02月01日
    瀏覽(20)
  • 機(jī)器學(xué)習(xí)筆記 - 基于OpenMMLab在自定義數(shù)據(jù)集上訓(xùn)練RTMDet網(wǎng)絡(luò)

    機(jī)器學(xué)習(xí)筆記 - 基于OpenMMLab在自定義數(shù)據(jù)集上訓(xùn)練RTMDet網(wǎng)絡(luò)

    ????????RTMDet是一種高效的實(shí)時(shí)目標(biāo)檢測(cè)器,其自報(bào)告指標(biāo)優(yōu)于YOLO 系列。它在COCO上實(shí)現(xiàn)了52.8% 的 AP ,在 NVIDIA 3090 GPU 上實(shí)現(xiàn)了300+ FPS,使其成為當(dāng)前號(hào)稱(chēng)最快、最準(zhǔn)確的目標(biāo)檢測(cè)器之一。 RTMDet ? 與其他實(shí)時(shí)物體檢測(cè)器的對(duì)比。 ?????????RTMDet 采用了一種在主干和頸部

    2024年02月11日
    瀏覽(19)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包