查看初始化后的角度设置变量

Posted

技术标签:

【中文标题】查看初始化后的角度设置变量【英文标题】:Angular set variable after View Init 【发布时间】:2020-12-22 12:59:42 【问题描述】:

情况: 目前我的网站上有两个标签,都包含一个文本。文字高度固定,内容溢出不显示(溢出:隐藏)。

问题: 如果我的文字溢出,我想添加三个点(图标)。为了检测是否发生溢出,我使用以下表达式,它完美地工作并在发生溢出时添加一个 expandButton。

isOverflown: boolean;
hasExpandButton: boolean;

[...]

const overflown = this.isOverflown() ? this.hasExpandButton = true : this.hasExpandButton = false;

问题是,我不知道我应该在哪里检查我的内容是否溢出,因为我在两个不同的位置(这里:标签)使用了这个语句。

如果我选择 ngAfterViewInit,如果我的内容在第一个选项卡上溢出,则 const overflown 将设置为 true。但不在第二个选项卡上(如果内容也溢出)。这样做的原因是,视图仅在第一个选项卡上呈现,而不在第二个选项卡上呈现。因此,如果我切换到第二个选项卡,ngAfterViewInit 将不会触发。

我也尝试使用其他生命周期钩子,但它们都不适合我。

我可能想到了 ngAfterContentInit 并使用变量来检测是否第一次调用 ngAfterContentInit,但这对我也不起作用。

提前谢谢你。

解决方案 我禁用了这个组件的延迟加载,这解决了这个问题。

【问题讨论】:

通常你在 css 中管理溢出(和省略号) 【参考方案1】:

您可以在视图初始化 (ngAfterViewInit) 和用户切换选项卡后检查它 - 将 (click)="checkOverflow()" 添加到 html 中的选项卡标记。

【讨论】:

【参考方案2】:

尝试使用 CSS 解决这个问题:

.txt-overflow 
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;

这样你就可以摆脱额外的组件逻辑

【讨论】:

这究竟是做什么的,为什么这能解决我的问题? 嗨 Lars,它只是一个 css 类,您可以将其应用于任何溢出某些内容的元素,以便应用“3 点”(自动)指示有更多文本,请参见此处的示例:@ 987654321@ 我怎样才能触发一个按钮来展开完整的消息? isOverflown(e: HTMLEelement): boolean return e.offsetWidth

以上是关于查看初始化后的角度设置变量的主要内容,如果未能解决你的问题,请参考以下文章

编写用户的环境初始化脚本****.sh,包括别名,登陆提示符,vim 的设置,环境变量的设置

变量在其自己的初始值中使用,而变量在初始化后的闭包中使用

角度将数据传递给变量以及该变量的使用

Swift SpriteNode 初始角度

C 语言数组 ( 数组本质 | 数组长度定义 | 数组初始化 | 编译时初始化 | 显式初始化 - 重置内存 )

php代码怎么查看变量初始位置,追踪变量 ,方法,在eclipse中?