2016-05-22 11 views
11

varsa angular2 şablon div elemanı Şu anda ben sadece html şablonu kullanarak mümkünse kolaylaştırmak istiyoruz bazı mantık var sınıf

Ben tıkladığı katlanabilir div (tıklayın), "olur aktif"

anda benim div: Ben o elemanın üzerine sınıfların listesi için kontrol ediyorum

<div class="collapsible-header blue darken-2" (click)="getDataForTable($event)"> 

function getDataForTable($event: any){ 
    let classList = $event.target.classList; 

    if(classList.contains("active")){ 
    //do nothing div is closing 
    } else { 
    //get data for table since we are opening the div to show the body 
    } 
} 

Bu (click) eyleminin yalnızca "etkin" değilse (yani "etkin" olarak tıklandığında ateş etmeyin) tetiklenmesini istiyorum;

Bunu yalnızca şablon sözdizimi ile nasıl yapabilirim?

+0

Yani sorun nedir ? Başka bir dalda aktif sınıf eklemeye mi çalıştın? – dfsq

+0

çalışır, ancak şablonda mantığa sahip olup olmadığımı bilmek istiyorum, böylece (tıklatma) olayı, yalnızca her tıklamayı tetikleyen işlevden ziyade "aktif" değilse ve olayın görünmesini kontrol etmektense yalnızca ateşlenecek eğer aktif veya değil – user2950720

cevap

9

Böyle yapmak mümkün olmalıdır:

<div class="collapsible-header blue darken-2" 
    (click)="$event.target.classList.contains('active') || getDataForTable($event)"> 

Ve sonra sınıf eklemeniz gerekir sadece ediyorum işlevinde:

function getDataForTable($event: any) { 
    $event.target.classList.add('active'); 
    // get data for table since we are opening the div to show the body 
} 
10
<div #mydiv 
    class="collapsible-header blue darken-2"  
    (click)="mydiv.classList.contains('xxx') ? getDataForTable($event) : null">