Angular2:ngIf而不破坏组件

时间:2016-07-21 20:18:26

标签: angular bing-maps

我有一个网页,其中一个标签控件占据了屏幕的一部分。使用* ngIf显示/隐藏选项卡,并将选定的选项卡与枚举进行比较。因此,每次用户更改标签时都会销毁/创建组件。

通常这很好,但其中一个标签包含Bing地图。每次选择选项卡时,地图控件都会重新加载 - 导致地图短暂显示当前的IP位置,直到加载所需的位置和引脚(稍后一小段时间)。

我能解决这个问题的唯一方法是停止在该标签上使用* ngIf,而是设置自定义样式:

.hide {height:0px;溢出:隐藏; }

到目前为止,这看起来效果很好,但我担心这会导致错误。

在不破坏组件的情况下是否有一种有角度的祝福方式隐藏组件?

感谢。

2 个答案:

答案 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 中删除它
相关问题