我有一个网页,其中一个标签控件占据了屏幕的一部分。使用* ngIf显示/隐藏选项卡,并将选定的选项卡与枚举进行比较。因此,每次用户更改标签时都会销毁/创建组件。
通常这很好,但其中一个标签包含Bing地图。每次选择选项卡时,地图控件都会重新加载 - 导致地图短暂显示当前的IP位置,直到加载所需的位置和引脚(稍后一小段时间)。
我能解决这个问题的唯一方法是停止在该标签上使用* ngIf,而是设置自定义样式:
.hide {height:0px;溢出:隐藏; }
到目前为止,这看起来效果很好,但我担心这会导致错误。
在不破坏组件的情况下是否有一种有角度的祝福方式隐藏组件?
感谢。
答案 0 :(得分:4)
您正在寻找[hidden]
属性。它或多或少取代了Angular2中的ng-show
/ ng-hide
。
在offical docs中找到它或在此处查看其代码示例:
<h3 [hidden]="!favoriteHero">
Your favorite hero is: {{favoriteHero}}
</h3>
答案 1 :(得分:0)
使用 angular 的 [hidden]
属性,它不会从 DOM 中删除部分/组件,而是将其从视图中隐藏,因此无需在 DOM 中重新实例化组件(类似于 css display: hidden
财产)
[hidden]= true
-> 从视图中隐藏部分,但它存在于 DOM 中[hidden]= false
-> 显示视图中的部分*ngIf="false"
-> 从视图中隐藏部分并从 DOM 中删除它