当前位置: 移动技术网 > IT编程>脚本编程>AngularJs > Angular @HostBinding()和@HostListener()用法

Angular @HostBinding()和@HostListener()用法

2018年03月06日  | 移动技术网IT编程  | 我要评论

云南盘鮈,试卖网,重庆小面加盟就选麦弄面馆

@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:别忘了把指令引入你的模块

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持移动技术网。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网