我想要做的是与手风琴相似。
简单的说
我有一个带有<a>
标签的ng-repeat,一旦点击,就会在 ng-show 中嵌入一个名为“Printpanel”的div。
如果用户点击另一个<a>
标签,我想要隐藏之前显示的所有其他div,并且只打开那个相关的div。
我使用$ index来触发特定的div。
我在这里做了什么:
<div ng-repeat="product in $ctrl.Products">
<a href="#" ng-click="showDetails = $index;>CONFIGURE</a>
<div class="Printpanel ng-hide" ng-show="showDetails == $index" ng-hide="showDetails != $index">
</div>
似乎无法识别ng-hide ......有人有想法吗?
答案 0 :(得分:1)
您无需使用ngShow
+ ngHide
:一个就足够了。
<div class="Printpanel ng-hide" ng-show="showDetails == $index">
答案 1 :(得分:0)
您也可以使用ng-if
:
<div class="Printpanel" ng-if="showDetails == $index">
编辑:
由于范围继承问题,您无法设置showDetails
变量。请使用$parent
。
工作示例:
<div ng-repeat="product in $ctrl.Products">
<a href="#" ng-click="$parent.showDetails = $index">CONFIGURE</a>
<div class="Printpanel" ng-if="$parent.showDetails == $index"> </div>
</div>
答案 2 :(得分:0)
似乎你错过了在这里关闭双引号ng-click =&#34; showDetails = $ index;
您也需要使用ng-show / ng-hide / ng-if = expression