Angular2嵌套可见性

时间:2016-11-13 13:56:33

标签: css angular

我正在实现一个显示标签的递归组件,并使用可见性来仅显示活动内容。我选择这种方法是因为选项卡内容的生成和从DOM角度进行布局都很昂贵。

based on this,我看到当我隐藏标签时,嵌套的子标签仍然可见。

我认为处理此问题的最佳方法是创建一组css类:

  1. 对 - 可见
  2. 对 - 可见隐藏
  3. 这样,当tab设置为hidden时,我可以通过DOM元素递归,并将具有p-visible类的任何元素更改为具有p-visible-hidden类。类似地,当选项卡设置为可见时,我可以将具有p-visible-hidden类的所有元素切换为p-visible。

    所以我想知道在Angular2中实现它的最佳方法 - 对我而言,最好的方法是实际选择子DOM元素。

    提前感谢您的任何帮助:)

    test harness for component

    tab layout component

1 个答案:

答案 0 :(得分:0)

我能够通过创建一个@Input布尔值(称为parentVisible)来解决问题,该布尔值指示父级是可见还是隐藏。此属性通过组件的递归层次结构向下级联。

parentVisible布尔值是设置每个子元素可见性的附加过滤器(如果parentVisible为false,则可见性设置为隐藏,如果parentVisible为true,则将visiblity设置为之前)

这种策略可以避免直接的DOM操作,这种操作被认为适合单元测试并以Angular2方式执行:微笑: