在ng-repeat中单击ng时显示隐藏的div


100

我正在使用Angular.js应用程序,该应用程序可以过滤医疗程序的json文件。当使用ng-click单击(在同一页面上)过程名称时,我想显示每个过程的详细信息。这是我到目前为止的内容,.procedure-details div设置为显示:无:

<ul class="procedures">
    <li ng-repeat="procedure in procedures | filter:query | orderBy:orderProp">
        <h4><a href="#" ng-click="?">{{procedure.definition}}</a></h4>
         <div class="procedure-details">
            <p>Number of patient discharges: {{procedure.discharges}}</p>
            <p>Average amount covered by Medicare: {{procedure.covered}}</p>
            <p>Average total payments: {{procedure.payments}}</p>
         </div>
    </li>
</ul>

我在角度上很新。有什么建议?


3
另外,您实际上不需要在a元素中使用href =“#”。
Foo L

2
如果您想通过HTML验证程序,则可以这样做。
丹尼·布利斯,2015年

Answers:


158

删除display:none,并ng-show改用:

<ul class="procedures">
    <li ng-repeat="procedure in procedures | filter:query | orderBy:orderProp">
        <h4><a href="#" ng-click="showDetails = ! showDetails">{{procedure.definition}}</a></h4>
         <div class="procedure-details" ng-show="showDetails">
            <p>Number of patient discharges: {{procedure.discharges}}</p>
            <p>Average amount covered by Medicare: {{procedure.covered}}</p>
            <p>Average total payments: {{procedure.payments}}</p>
         </div>
    </li>
</ul>

这是小提琴:http : //jsfiddle.net/asmKj/


您还可以ng-class用于切换课程:

<div class="procedure-details" ng-class="{ 'hidden': ! showDetails }">

我更喜欢这种方式,因为它可以让您进行一些不错的转换:http : //jsfiddle.net/asmKj/1/


3
单击第二个div时如何隐藏第一个div。
User123 2013年

要回答上面的Q ...只需将ng-class更改为true即可隐藏。...ng-class =“ {'hidden':showDetails}”
Chris Lambrou

28

使用ng-show并切换处理程序中show范围变量的值ng-click

这是一个工作示例:http : //jsfiddle.net/pvtpenguin/wD7gR/1/

<ul class="procedures">
    <li ng-repeat="procedure in procedures">
        <h4><a href="#" ng-click="show = !show">{{procedure.definition}}</a></h4>
         <div class="procedure-details" ng-show="show">
            <p>Number of patient discharges: {{procedure.discharges}}</p>
            <p>Average amount covered by Medicare: {{procedure.covered}}</p>
            <p>Average total payments: {{procedure.payments}}</p>
         </div>
    </li>
</ul>

4
单击第二个div时如何隐藏第一个div。
User123 2013年

这让我感到困惑……这个“作用域”变量如何工作?当我尝试时,所有的东西都是隐藏的!
Nico
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.