您好,欢迎访问一九零五行业门户网

AngularJS中@HostBinding()和@HostListener()的使用区别

这次给大家带来angularjs中@hostbinding()和@hostlistener()的使用区别,使用angularjs中@hostbinding()和@hostlistener()的注意事项有哪些,下面就是实战案例,一起来看一下。
@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随机分配颜色
相信看了本文案例你已经掌握了方法,更多精彩请关注其它相关文章!
推荐阅读:
axios发送请求时springmvc无法接受参数
怎样通过axios实现网络请求功能
以上就是angularjs中@hostbinding()和@hostlistener()的使用区别的详细内容。
其它类似信息

推荐信息