Ng-tekrar içinde gizli bölme-tıklamayı göster


100

Tıbbi prosedürlerin bir json dosyası aracılığıyla filtreleyen bir Angular.js uygulaması üzerinde çalışıyorum. Ng-tıklama kullanılarak prosedürün adına tıklandığında (aynı sayfada) her prosedürün ayrıntılarını göstermek istiyorum. .Procedure-details div öğesi görüntülenecek şekilde ayarlandığında şu ana kadar elde ettiğim şey bu: yok:

<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>

Angular konusunda oldukça yeniyim. Baska öneri?


3
Ayrıca, a öğesinde gerçekten bir href = "#" öğesine ihtiyacınız yoktur.
Foo L

2
Bir HTML doğrulayıcısını geçmek istiyorsanız yaparsınız.
Danny Bullis

Yanıtlar:


158

Kaldır display:noneve ng-showyerine şunu kullan:

<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>

İşte keman: http://jsfiddle.net/asmKj/


ng-classBir sınıfı değiştirmek için de kullanabilirsiniz :

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

Bunu daha çok seviyorum, çünkü bazı güzel geçişler yapmanıza izin veriyor: http://jsfiddle.net/asmKj/1/


3
İkinci div'e tıkladığımda ilk div nasıl gizlenir.
User123

Yukarıdaki soruya cevap vermek için ... Sadece ng-sınıfını true'da gizli olarak değiştirin .... ng-class = "{'hidden': showDetails}"
Chris Lambrou

28

İşleyicideki ng-showbir showkapsam değişkeninin değerini kullanın ve değiştirin ng-click.

İşte çalışan bir örnek: 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
İkinci div'e tıkladığımda ilk div nasıl gizlenir.
User123

Bu beni şaşırtıyor ... bu "kapsam" değişkeni nasıl çalışıyor? Bunu denediğimde, hepsi gizli !?
Nico
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.