Javascript 在AngularJs中选择性地显示ng重复

Javascript 在AngularJs中选择性地显示ng重复,javascript,angularjs,conditional,angularjs-ng-repeat,Javascript,Angularjs,Conditional,Angularjs Ng Repeat,我有一个数据如下。有两种类型的问题,一种是以图片作为答案,另一种是以选项作为答案 $scope.data = [ {'question': "Select one.", 'pic': false, 'answer': [ {"option": "8", "correct": false}, {"option": "14", "correct": false}, {"opt

我有一个数据如下。有两种类型的问题,一种是以图片作为答案,另一种是以选项作为答案

$scope.data = [
     {'question': "Select one.", 'pic': false,
       'answer': [
              {"option": "8",      "correct": false},
              {"option": "14",     "correct": false},
              {"option": "1",      "correct": true},
              {"option": "23",     "correct": false} 
            ]

      },

       {'question': "Select another right answer.", 'pic': true,
       'answerPic': [
              {"option": "img/pic1.jpeg",      "correct": false},
              {"option": "img/pic2.jpeg",     "correct": false},
              {"option": "img/pic3.jpeg",      "correct": true},
              {"option": "img/pic6.jpeg",     "correct": false} 
            ]

      },

   ]
我使用了下面的代码在视图中显示它们。如您所见,有两个
ng repeat
块,每种类型一个。但是我如何让angular选择一个特定的类型来查看数据中的pic值呢?例如,如果pic为真角度,则应使用图片块。否则就是正常的

<div class="text">
  <label ng-repeat="a in question.answer">
      <input type="radio" name="answers"> 
      <div class="item-content">
            {{ a.option }}
      </div>
   </label>
</div>

<div class="picture">
  <label ng-repeat="a in question.answer">
      <input type="radio" name="answers"> 
      <div class="item-content">
            <img src="{{ a.option }}" />
      </div>
   </label>
</div>

{{a.option}}

到目前为止,我能想到的唯一选项是使用
ng show
ng hide
。然后我将能够将
pic
值从数据传递给它。但在我看来,这就像是一个黑客。解决这种情况的最佳方法是什么?

您可以使用
ng if
ng开关
。与
ngshow
/
nghide
相反,前者实际上会从dom中删除元素,而后者只是更改
display
css属性


提供了一个很好的说明。

ng show或ng hide没有任何问题。您可以将其与
ng-clope
结合使用。更多信息请参见此问题:谢谢,弗里迪。我很好奇为什么投反对票如果我知道的话,也许我以后可以避免类似的问题。不客气。顺便说一句,否决票不是我投的。