我有一个显示电影列表的ng-repeat,每次重复都是一个图标,点击时将当前索引设置为model.displayedIndex
:
<span><i ng-click="toggle($index); model.displayedIndex = $index"></i></span>
和
<div class="additional_info" ng-show="$index === model.displayedIndex">
{{movie.overview}}
</div>>
当点击图标时,ng-show检查$index === model.displayedIndex
是否值相同,语句为真,并显示div。这样只有ng-repeat中的ng-show才是真的。
但现在我正在寻找一种方法来点击相同的图标时切换ng-show。现在没有任何反应,因为值model.displayedIndex等于index。在这种情况下,如何将ng-show设置为false?
我已尝试将以下内容添加到我的图标中:
<span><i ng-click="toggle($index); model.displayedIndex = $index ; toggleInfo = !toggleInfo"></i></span>
在我的div中:
<div class="additional_info" ng-show="$index === model.displayedIndex || toggleInfo">
但很明显,model.displayedIndex仍然等于索引,所以ng-show仍然设置为true。
答案 0 :(得分:2)
FP1001 287 111 (blank)
应该调用此函数
ng-click
如果您点击当前的$scope.toggleDisplay = function(index){
if(index == $scope.model.displayedIndex)
$scope.model.displayedIndex = -1;
else
$scope.model.displayedIndex = index;
}
- 它会将其设置为displayedIndex
,然后-1
条件将为ng-show
这是您更新的范围
false