angular 点击特定区域外事件
模板
或者
// 视图选择装饰器函数(对应模板`
@ViewChildren('unclick') unclick: QueryList;
//监听dom
@HostListener('document:click',['$event']) bodyClick(e) {
// if(!e.path || e.path || e.path.forEach) return
// getTrigger(this.unclick) ? '触发全局点击' : '不触发全局点击'
console.log(getTrigger(this.unclick,'unclick'))
function getTrigger(queryList,className?) {
let flag = true;
// 遍历事件节点
(e.path).forEach(i => {
// 是否为 #unclick
flag && queryList.forEach(el => {
i.isEqualNode && i.isEqualNode(el.nativeElement) && (flag = false)
})
// 是否为 class="unclick"
flag && i.className && i.className.indexOf && i.className.indexOf(className) > -1 && (flag = false)
})
return flag
}
}
相关知识点:
QueryList 是 ViewChildren 对应的interface
(e.path) 用来断言e.path的类型
ElementRef.nativeElement 获得原生DOM节点
isEqualNode className 为DOM原生方法
总结
如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。