【发布时间】:2021-03-09 07:29:31
【问题描述】:
我需要检查 Angular 指令中的 offsetHeight 是否低于 scrollHeight。问题是它只能像下面那样工作。我想避免使用 setTimeout。你能推荐我任何解决方法吗?提前致谢。
@Directive({
selector: '[appEllipsisDirective]'
})
export class EllipsisDirective implements AfterViewInit {
constructor(private ref: ElementRef) {
}
ngAfterViewInit() {
setTimeout(() => {
if (this.ref.nativeElement.offsetHeight < this.ref.nativeElement.scrollHeight) {
this.init.emit(true);
}
});
}
}
```
【问题讨论】:
-
如果不添加
setTimeout会怎样?您可以将此行为添加到您的问题中吗 -
我猜你需要一个滚动事件,添加带有滚动事件的 HostListener 并检测其中的滚动高度和偏移高度
-
以下是图片中的一些示例。问题是当我在全尺寸桌面屏幕上打开页面时,橙色显示更多按钮不会出现在文本下方,即使文本的高度大于主机的高度。如果我在响应视图中打开我的条件工作很好。
标签: javascript html angular dom angular2-directives