Jak pisać atrybuty danych za pomocą Angulara?


229

Kiedy próbuję użyć data attributew moim template, jak poniżej:

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

Angular 2 ulega awarii z:

WYJĄTEK: Błędy analizy szablonu: Nie można powiązać z wartością „sectionvalue”, ponieważ nie jest to znana właściwość natywna („

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

Oczywiście brakuje mi czegoś w składni, proszę o pomoc.

Odpowiedzi:


471

Zamiast tego użyj składni wiązania atrybutów

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

lub

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

Zobacz też :


20
jak uzyskać dostęp do wartości atrybutu danych?
Sean W

4
Utwórz nowe pytanie z kodem, który pokazuje, co próbujesz osiągnąć.
Günter Zöchbauer,

10
To powinna być odpowiedź Googles nr 1 dla zapytania „Nie można powiązać z”, ponieważ nie jest to znana właściwość zapytania „” . Ten komentarz może trochę pomóc ...
netzaffin

1
@netzaffin To przydatna odpowiedź, ale wiele razy natknąłem się na błąd „nie można powiązać” i po raz pierwszy był to rzeczywisty problem / rozwiązanie.
Stack Underflow

32

O dostępie

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

I

get_data(event) {
   console.log(event.target.dataset.sectionvalue)
}
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.