我有一个ng-repeat生成的列表,它迭代一个对象数组。 对于创建的每个元素,我都有一个用于切换showDetails-body的ng-click。 像这样:
<li class="list-group-item" ng-repeat-start="order in orderList "
ng-click="order.showDetails = !order.showDetails"
当我改变整个窗口的状态(即更改视图)时,如何将该特定元素切换为false?问题是带有详细信息的list-elements“body”显示我在应用程序中更改视图的时间。我需要重置该特定元素。可能吗?
答案 0 :(得分:1)
使用 ng-repeat 代替 ng-repeat-start
<body ng-controller="MainCtrl">
<li class="list-group-item" ng-repeat="order in orderList "
ng-click="order.showDetails = !order.showDetails">{{order.name}}
{{order.showDetails}}</li>
</body>
让coltroller
app.controller('MainCtrl', function($scope) {
$scope.orderList = [{"name":"John","showDetails":false},
{"name":"Doe","showDetails":false}
];
});
答案 1 :(得分:0)
$scope.collapseListItem = function(){
$scope.orderList.forEach(function(element) {
element.showDetails=false;
});
}
这解决了我的问题。在更改视图时,我在视图中使用ng-click()调用此函数。