【发布时间】:2017-03-28 20:34:24
【问题描述】:
我正在为我的 web 应用程序使用 Bootstrap 和 Angular 2 (v4)。我想听取指令中的一个元素以更改可见性。我的元素有一个父元素,可以使用hidden-sm-up 隐藏其子元素,并且每次隐藏或显示它时我都需要触发一个函数。
div.hidden-sm-up
input.form-control(myDirective, type='number')
在我的指令中:
@Directive({
selector: '[myDirective]'
})
export class myDirective {
constructor(private element: ElementRef, private renderer: Renderer){
}
ngAfterViewInit(): void{
// listen to visibility change here
}
}
【问题讨论】:
-
你应该使用组件的主机属性
-
@BabarBilal 请提出你的答案...
-
它是如何隐藏或显示的?当元素变得不可见时,浏览器不提供任何事件,因此 Angular 也不提供。
-
@GünterZöchbauer 就像问题中提到的那样,在父母中使用
.hidden-sm-up。 -
所以它是纯 CSS。您只能通过迭代父母进行轮询并检查
display属性以获取hidden或您在 CSS 中应用的任何内容。
标签: javascript angular listener