Angularjs 在ng重复中只允许一个折叠div

Angularjs 在ng重复中只允许一个折叠div,angularjs,bootstrap-4,Angularjs,Bootstrap 4,我在ng repeat中有一些数据,在里面我在每个折叠的div下都有一些数据 否当我单击主div时,我只希望一次折叠一个div 例如:如果我单击abc,则应显示asdasd。。然后,如果单击abc1,则应显示asdasd1,但不是asdasd <script> angular.module('myApp', []) .controller("Ctrl_List", ["$scope", function(s) { s.people = [ {name:"Sten", age:"

我在ng repeat中有一些数据,在里面我在每个折叠的div下都有一些数据

否当我单击主div时,我只希望一次折叠一个div

例如:如果我单击abc,则应显示asdasd。。然后,如果单击abc1,则应显示asdasd1,但不是asdasd

<script>
angular.module('myApp', [])
.controller("Ctrl_List", ["$scope", function(s) {
   s.people = [
{name:"Sten", age:"49"}
,{name:"John", age:"39"}
,{name:"Hanne", age:"37"}
,{name:"Jens", age:"37"}
,{name:"Brian", age:"24"}
,{name:"Johnny", age:"24"}
,{name:"Peter", age:"49"}
]
s.obj = [
              {
                "name":'abc',
                "text":'asdasd'
              },
              {
                "name":'abc1',
                "text":'asdasd1'
              }
              ]
}])

angular.module('myApp',[])
.controller(“Ctrl_列表”[“$scope”,函数){
s、 人=[
{姓名:“Sten”,年龄:“49”}
,{姓名:“约翰”,年龄:“39”}
,{姓名:“汉恩”,年龄:“37”}
,{姓名:“Jens”,年龄:“37”}
,{姓名:“布赖恩”,年龄:“24”}
,{姓名:“约翰尼”,年龄:“24”}
,{姓名:“彼得”,年龄:“49”}
]
s、 obj=[
{
“名称”:“abc”,
“文本”:“asdasd”
},
{
“名称”:“abc1”,
“文本”:“asdasd1”
}
]
}])

html:


{{ob.name}
{{ob.text}}
数据父项不适用于我,或者可能是我没有正确使用它


请使用纯角度方法检查小提琴,而不是使用JQuery

向每个对象添加新属性
show
,并使用
ng if
在控制器中使用方法显示/隐藏其相应的文本

<div ng-repeat="ob in obj">
   <button class="btn" ng-click=" showThis(ob)"> {{ob.name}}</button>
   <div ng-if="ob.show">{{ob.text}}</div>
</div>

使用纯角度方法,而不是使用JQuery

向每个对象添加新属性
show
,并使用
ng if
在控制器中使用方法显示/隐藏其相应的文本

<div ng-repeat="ob in obj">
   <button class="btn" ng-click=" showThis(ob)"> {{ob.name}}</button>
   <div ng-if="ob.show">{{ob.text}}</div>
</div>

谢谢,这对我很有效,只是我没有得到动画。但是没关系。再次感谢!谢谢,它为我工作,只是我没有得到动画。但是没关系。再次感谢!
s.showThis = function(obj) {
   //Hides all
   angular.forEach(s.obj, function(ob) {
      if(ob.name != obj.name) {
           ob.show = false;
      }
    });

   //Toggles current object show/hide
   obj.show = !obj.show;
}