如何在角度2中动态替换函数?

时间:2018-02-16 18:40:21

标签: angular onclick onclicklistener

我正在使用具有一个(或多个)ul元素的角度组件,而这个ul元素又有几个li元素。每个li元素由其自己的typescript组件/类表示。

li类有一个处理点击事件的功能,如

 public liClick: Function = (() => {});
  handleLiClick(event: Event) {
    this.liClick(this, event);
  } 

我想覆盖这个处理程序,以便在点击它时另外更改li的css类。

传统的方法可能是编写另一个扩展基础类的li类。我想知道是否有一种更简单(可能更黑客)的方法,只需用另一个替换handleClick函数/方法而不更改li类?或者还有其他方法可以替换事件处理程序?

1 个答案:

答案 0 :(得分:1)

您可以在此处使用属性绑定,( your.template.html

<ul>
    <li (click)="handleLiClick(event)" [class.myClass]="isTrue">one</li>
</ul>

(的 your.component.ts

// ...
@Component({ 
    // ... 
})
export class YourComponent {
    isTrue = false;
    handleLiClick(event: Event) {
        this.liClick(this, event);
        this.isTrue = true;
    } 
}