1、自定义指令
/*
* Directive: 指令模块
* ElementRef: 获取节点
* Input: 获取输入内容
* Renderer: 渲染新节点
* HostListener: 这是监听事件的, 绑定时间
*
* 注意:
* 1. 指令的名称要使用中括号括起来
* 2. html中使用的时候, 不需要中括号
* 3. 构造模板中传递参数的时候, 如果是字符串, 那么要单引号: [myHighlight]="'blue'"
*/
import {Directive, ElementRef, HostListener, Input, Renderer} from '@angular/core';
@Directive({
selector: '[myHighlight]'
})
export class OneDirective {
constructor(private el:ElementRef, private renderer:Renderer) {
}
// 给myHighlight指令定义一个输入变量(外部调取这个指令传递的参数)
@Input("myHighlight") chColor: string;
@HostListener("click") onClick() {
// 调用函数, 传递指令外部获取的颜色
this.changeColor(this.chColor);
}
// 自定义函数
public changeColor(color: string) {
this.renderer.setElementStyle(this.el.nativeElement, "background-color", color);
}
}
2、app.module.ts主模块中引入指令
import {HighLight} from "../directive/high-light.directive.ts"
@ngModule({
declarations: [
HighLight
]
})
3、模板中使用指令
<p myHighlight="yellow">
自定义指令
</p>
网友评论