angular2 directive 学习

directive代码:html

import {Directive, ElementRef, Input, HostListener, HostBinding} from "@angular/core";

@Directive({
    selector: '[myhighlight]'
})

export class MyHighlightDirective {

    @Input() highlightcolor: string;
    htmlEl: HTMLElement;

    constructor(private el: ElementRef) {
        this.htmlEl = el.nativeElement;
    }

    @HostListener('mouseenter') onMouseenter() {
        this.highlight(this.highlightcolor || 'cyan');
    }

    @HostListener('mouseleave') onMouseleave() {
        this.highlight('blue');
    }

    @HostListener('click') onClick() {
        alert(this.highlightcolor);
    }

    @HostBinding('style.width') get width() {
        return "200px";
    }

    private highlight(color: string) {
        this.htmlEl.style.backgroundColor = color;
    }

}
<div myhighlight [highlightcolor]="'red'">这是个测试类</div>
相关文章
相关标签/搜索