由于某些原因,我的ng-click
/ ng-class
组合无效。点击后,必须根据hide
变量的相等性添加“productDisplay
”类。
<div ng-repeat="product in project.data track by $index">
<p ng-click="productDisplay = $index"><strong>{{product.name}}</strong></p>
<div class="fileList" ng-class="{'hide': productDisplay !== $index}">{{$index}}</div>
我可以点击<p>
元素,div fileList
将会打开,但一旦打开我就无法关闭它们。
有什么想法吗?
THX,
答案 0 :(得分:1)
尝试切换而不是去$index
,使用productDisplay = !productDisplay
这会更改ng-class表达式并在点击时应用hide类,或者使用更好的代码ng-if
/ ng-show
/ ng-hide
而不是ng-class
。
<强> HTML 强>
<div ng-repeat="product in project.data track by $index">
<p ng-click="productDisplay = !productDisplay"><strong>{{product.name}}</strong></p>
<div class="fileList" ng-class="{'hide': productDisplay">{{$index}}</div>
</div>
<强>更新强>
同样的事情可以通过在productDisplay
的父范围内维护ng-repeat
变量来实现,然后你需要$parent.productDisplay
内的ng-repeat
<div ng-repeat="product in project.data track by $index">
<p ng-click="$parent.productDisplay = $index"><strong>{{product.name}}</strong></p>
<div class="fileList" ng-class="{'hide': $parent.productDisplay !== $index">{{$index}}</div>
</div>
感谢。