美文网首页
2018-08-30----class.hidden和ngIf的

2018-08-30----class.hidden和ngIf的

作者: 快乐女孩筱梅 | 来源:发表于2018-08-30 11:05 被阅读0次

    前言

    不知道大家在做项目的时候,会不会使用较多的条件判断(*ngIf)来选择性的渲染和显示元素或者相关的信息。最近在做Angular2的项目时,就遇到两次因为使用ngIf来选择渲染显示而使得ts的代码中,找不到想要找的DOM元素。
    所以自己总结了一下:如果当我们在选择显示的模块中,需要ts代码去进行编写该模块实现差异化显示(比如:要获取对应的DOM元素进行不同的样式渲染显示,或者获取该元素的宽度和高度),这时候就会出现问题:
    1、获取不到DOM元素
    2、 自然也获取不到DOM元素的高度和宽度
    原因:
    1、ts的执行速度比HTML模块的渲染速度快
    2、使用了ngIf是的该元素压根都找不到
    解决方案:
    1、把ngIf改成了class.hidden,也能实现选择性的渲染元素和信息,这时候可以找到该DOM元素,但是在获取高度的时候,还是没有成功,是因为在此时,对应的信息还是渲染和计算,所有没有高度。
    2、启用了一次性定时器进行延时了ts中获取该DOM的高度和增加不同样式的代码部分。
    当然了,感觉也不是最佳方案,希望大神们给与更好的方案;因为项目的代码不能上传的原因,这次总结可能不是描述的很好,就当是自己的小总结。

    另外:大家可能都知道display:none时,不占据页面空间,不显示。但是可以通过jQuery的height()方法获取高度的哦,浏览器的computed里面是可以看到对应计算的属性值的。所有虽然页面不显示,不占据空间,但是还是可以获取该DOM的高度的哈

    相关文章

      网友评论

          本文标题:2018-08-30----class.hidden和ngIf的

          本文链接:https://www.haomeiwen.com/subject/gjkrwftx.html