Angular'ı kullanarak veri niteliklerini nasıl yazabilirim?


229

data attributeBenim templategibi bir kullanmaya çalıştığımda , şöyle :

<ol class="viewer-nav">
    <li *ngFor="#section of sections" data-value="{{ section.value }}">
        {{ section.text }}
    </li>
</ol>

Angular 2 ile çöküyor:

İSTİSNA: Şablon ayrıştırma hataları: Bilinen bir yerel özellik olmadığı için 'sectionvalue' öğesine bağlanamıyor ("

] data-sectionvalue = "{{section.value}}"> {{section.text}}

Açıkçası sözdiziminde bir şey eksik, lütfen yardım et.

Yanıtlar:


471

Bunun yerine özellik bağlama sözdizimini kullanın

<ol class="viewer-nav"><li *ngFor="let section of sections" 
    [attr.data-sectionvalue]="section.value">{{ section.text }}</li>  
</ol>

veya

<ol class="viewer-nav"><li *ngFor="let section of sections" 
    attr.data-sectionvalue="{{section.value}}">{{ section.text }}</li>  
</ol>

Ayrıca bakınız :


20
data özelliğinin değerine nasıl erişirim?
Sean W

4
Lütfen ne yapmaya çalıştığınızı gösteren bazı kodlarla yeni bir soru oluşturun.
Günter Zöchbauer

10
Sorunun bilinen bir özelliği olmadığından, '' bağlanamıyor '' için Google'ın # 1 yanıtı olmalıdır . Bu yorum biraz yardımcı olabilir ...
netzaffin

1
@netzaffin Bu yararlı bir cevap ama birçok kez can't bind hatasıyla karşılaştım ve bu ilk kez bu gerçek sorun / çözüm oldu.
Stack Underflow

32

Erişim hakkında

<ol class="viewer-nav">
    <li *ngFor="let section of sections" 
        [attr.data-sectionvalue]="section.value"
        (click)="get_data($event)">
        {{ section.text }}
    </li>  
</ol>

Ve

get_data(event) {
   console.log(event.target.dataset.sectionvalue)
}
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.