我有一个网页,其中tab
控件占据了屏幕的一部分。使用*ngIf
并将所选选项卡与enum
进行比较来显示/隐藏选项卡。因此,每次用户更改选项卡时,组件都会被销毁/创建。
通常这是可以的,但其中一个选项卡包含Bing map
。每次选择选项卡时,都会重新加载地图控件,从而使地图短暂显示current IP location
,直到加载所需位置和引脚(一秒钟后)。
我唯一能解决这个问题的方法是停止对该选项卡使用*ngIf
,而是设置一个自定义样式:
.hide { height: 0px; overflow: hidden; }
到目前为止,这似乎很有效,但我担心这会在未来引发bug。
有没有一种在不破坏组件的情况下隐藏组件的方法?
谢谢。
[hidden]
属性就是您想要的。它或多或少地取代了Angular2中的ng-show
/ng-hide
。
在官方文档中找到它,或者在这里查看他们的代码示例:
<h3 [hidden]="!favoriteHero">
Your favorite hero is: {{favoriteHero}}
</h3>
使用angular的[hidden]
属性,该属性不会从DOM中删除节/组件,而是将其隐藏在视图中,因此无需在DOM中重新实例化组件(类似于css display: hidden
属性)
[hidden]= true
->从视图中隐藏Section,但它存在于DOM中[hidden]= false
->显示视图中的分区*ngIf="false"
->从视图中隐藏节&还将其从DOM中删除