Angular2:ngIf而不破坏组件



我有一个网页,其中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中删除

相关内容

  • 没有找到相关文章

最新更新