Javascript Ng重复切换,初始状态显示第一个子项并隐藏其余子项

Javascript Ng重复切换,初始状态显示第一个子项并隐藏其余子项,javascript,angularjs,angularjs-ng-repeat,ng-show,Javascript,Angularjs,Angularjs Ng Repeat,Ng Show,我目前正在完成切换集合中项目的可见性,如下所示: .terms ng-repeat="term in terms" h1 ng-click="termOpen = !termOpen" | {{term.name}} .term ng-show="termOpen" p Content blah blah .term的默认状态是隐藏的。单击标题时,将显示.term的内容。这很好,只是我希望第一个元素的初始状态是可见的 我尝试了ng show='“facetOpen”

我目前正在完成切换集合中项目的可见性,如下所示:

.terms ng-repeat="term in terms" 
  h1 ng-click="termOpen = !termOpen"
    | {{term.name}}

  .term ng-show="termOpen"
    p Content blah blah
.term
的默认状态是隐藏的。单击标题时,将显示
.term
的内容。这很好,只是我希望第一个元素的初始状态是可见的


我尝试了
ng show='“facetOpen”| |“$first”
,但无法切换第一个术语以使其隐藏。

尝试使用
ng init

h1 ng-click="termOpen = !termOpen" ng-init="termOpen=$first"

除了charlietfl的答案之外,还有其他一些东西:

  • 因为,我认为您只需要在单击某个部分时切换其中一个元素而不是所有元素,所以必须将其修改为:

    h1 ng-click="term.termOpen = !term.termOpen" ng-init="term.termOpen=$first"
    
  • 现在,在这一点上,将发生的是,最初该项的termOpen属性将是未定义的(所以为false,除了第一个),下次单击它将是!未定义如此真实,再次单击即可!真是假。 如果您使用相同的变量,就像您所做的那样,那么单击任何一个部分都将打开所有部分,我认为您不想这样做

  • 你在做:

    ng-show = '"facetOpen" || "$first"'
    
  • 这总是正确的,因为两者都是字符串(你把它们放在双引号中,angular认为它们是字符串),应该是:

    ng-show = 'facetOpen || $first'
    
    其中facetOpen是一个范围变量。此外,它不能正常工作,因为第一项始终保持打开状态,因为其条件始终为真


    <>这是你可能要考虑的另外两件事。< / P>是的!这正是我想要的,九分钟后,当我能接受这个答案为正确时,我肯定会的。