Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用嵌套组件并使用ng hide隐藏它们的Angular Web体系结构_Javascript_Angularjs - Fatal编程技术网

Javascript 使用嵌套组件并使用ng hide隐藏它们的Angular Web体系结构

Javascript 使用嵌套组件并使用ng hide隐藏它们的Angular Web体系结构,javascript,angularjs,Javascript,Angularjs,我正在使用Angular 1.X开发一个应用程序 有一个组件跨三页使用 我在一个主组件中嵌套了几个组件。但是,有两个组件仅显示在一个页面上。我目前正在考虑是否这样做,并想知道这是否是一个坏的选择 <!-- Component 1 --> <div class="wrapper"> <div ng-if="showChildren"> <component2> </component2&

我正在使用Angular 1.X开发一个应用程序

有一个组件跨三页使用

我在一个主组件中嵌套了几个组件。但是,有两个组件仅显示在一个页面上。我目前正在考虑是否这样做,并想知道这是否是一个坏的选择

    <!-- Component 1 -->  
      <div class="wrapper">
       <div ng-if="showChildren">
          <component2> </component2> 
       </div>

    <!-- more code goes here  -->  

       <div ng-if="showChildren">
          <component3> </component3> 
       </div>
     </div>

在所需页面上,我将添加控制器

<component1 showChildren="true"></component1>

这段代码运行正常,在页面或控制台上都没有错误


尽管可能有其他解决方案,但这方面是否有任何设计/实施不好的地方?

这主要是一个偏好问题,因为您的解决方案本身没有任何问题

不过有几点建议:

  • 如果要隐藏
    div.wrapper
    的所有子项,为什么不将
    ng show
    应用于包装本身
  • 既然
    showChildren
    的值似乎不会改变,为什么不改用
    ng if
    来简化DOM呢
    ng show
    仍然会生成隐藏的DOM元素并使用样式来隐藏它们,而
    ng if
    则不会生成它们

关于ng if实施,您是对的。谢谢要回答第一个问题,component1中有更多的代码/组件。我只想省略某些页面上的组件2,3。@ExecutiveCloser有道理!如果包装器有未隐藏的子项,那么在每个子项上似乎是放置
ng If
指令的最佳位置。