Angular @HostBinding()和@HostListener()用法
程序员文章站
2022-07-05 16:20:43
@hostbinding()和@hostlistener()在自定义指令时非常有用。@hostbinding()可以为指令的宿主元素添加类、样式、属性等,而@hostlis...
@hostbinding()和@hostlistener()在自定义指令时非常有用。@hostbinding()可以为指令的宿主元素添加类、样式、属性等,而@hostlistener()可以监听宿主元素上的事件。
@hostbinding()和@hostlistener()不仅仅用在自定义指令,只是在自定义指令中用的较多
本文基于angular2+
下面我们通过实现一个在输入时实时改变字体和边框颜色的指令,学习@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.bordercolor') bordercolor: string;③ @hostlistener('keydown') onkeydown(){④ const colorpick = math.floor(math.random() * this.possiblecolors.length); this.color = this.bordercolor = this.possiblecolors[colorpick]; } }
说一下上面代码的主要部分:
①:为我们的指令取名为apprainbow
②:定义我们需要展示的所有可能的颜色
③:定义并用@hostbinding()装饰color和bordercolor,用于设置样式
④:用@hostlistener()监听宿主元素的keydown事件,为color和bordercolor随机分配颜色
ok,现在就来使用我们的指令:
<input apprainbow>
效果就像这样:
note:别忘了把指令引入你的模块
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
上一篇: 3D打印地形图帮助学生更好地了解地理知识
下一篇: ASP VBScript 函数速查表
推荐阅读
-
Angular ng-animate和ng-cookies用法详解
-
详解Angular2中Input和Output用法及示例
-
Angular @HostBinding()和@HostListener()用法
-
Angular中$cacheFactory的作用和用法实例详解
-
Angular ng-animate和ng-cookies用法详解
-
在Angular中@HostBinding()和@HostListener()用法(详细教程)
-
AngularJS中@HostBinding()和@HostListener()的使用区别
-
AngularJS中@HostBinding()和@HostListener()有什么区别
-
详解Angular2中Input和Output用法及示例
-
AngularJS中@HostBinding()和@HostListener()的使用区别