【发布时间】:2018-05-05 20:35:58
【问题描述】:
我正在使用自定义指令,我想在单击时修改宿主元素的类。每个人都建议使用 HostBinding,我尝试过但仍然无法正常工作。
@HostBinding('class') nosorting = 'table-sorting';
@HostBinding('class') ascending = 'table-sorting_asc';
@HostBinding('class') descending = 'table-sorting_desc';
@HostListener('click', ['$event'])
onClick(event) {
if (event.target.nodeName === 'TH') {
console.log(this.el);
const target = $(event.target);
if (target.data('sort')) {
if (target.hasClass('table-sorting')) {
this.renderer.addClass(this.el.nativeElement, 'table-sorting_asc');
this.renderer.removeClass(this.el.nativeElement, 'table-sorting');
}
if (target.hasClass('table-sorting_asc')) {
this.renderer.addClass(this.el.nativeElement, 'table-sorting_desc');
this.renderer.removeClass(this.el.nativeElement, 'table-sorting_asc');
}
if (target.hasClass('table-sorting_desc')) {
this.renderer.addClass(this.el.nativeElement, 'table-sorting');
this.renderer.removeClass(this.el.nativeElement, 'table-sorting_desc');
}
}
}
}
谁能详细告诉我它们的工作原理和使用方法?
【问题讨论】:
-
此documentation 为您提供所需信息
标签: angular directive angular-directive