小编Smi*_*nin的帖子

Angular:委托模式.在ngFor中优化处理程序的方法

例如:我需要输出一个列表.每个项目都有一个(click)处理程序,项目对象就像参数一样.

<ul>
    <li *ngFor="let item of myList">
          <button (click)="clickHandler(item)"></button>       
    </li>
</ul>
Run Code Online (Sandbox Code Playgroud)

此列表将经常动态更新:我将在Scroll上加载新项目,或通过搜索过滤列表.

对于每个项目,Angular都会添加一个事件监听器!

题:

它可能是列表中的很多项,因此很多eventListeners将一直连接和断开连接.

有没有办法应用委托模式只有一个eventListener实时?

javascript angular

9
推荐指数
1
解决办法
155
查看次数

Angular 2.删除@Hostlistener()

我如何像在本机JS中使用的removeEventListener一样,在Angular 2中删除@Hostlistener()

示例: 页面中有很多dropDown组件。当dropDown打开时,我想在document click事件上添加处理程序,并在dropDown关闭时删除处理程序。

原生JS:

function handler(){
  //do something
}
document.addEventListener('click', handler); // add handler
document.removeEventListener('click', handler); // remove handler
Run Code Online (Sandbox Code Playgroud)

角度2:

  @HostListener('document: click') onDocumentClick () {
    // do something
  }

  // How can I remove handler?
Run Code Online (Sandbox Code Playgroud)

javascript typescript angular

4
推荐指数
2
解决办法
4777
查看次数

标签 统计

angular ×2

javascript ×2

typescript ×1