Як я можу записати атрибути даних за допомогою Angular?


229

Коли я намагаюся використовувати data attributeмоє template, наприклад:

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

Angular 2 збої з:

ВИХІД: Помилки розбору шаблонів: Неможливо прив’язати до 'valuevalue', оскільки це не відома рідна властивість ("

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

Мені, очевидно, щось не вистачає із синтаксисом, будь ласка, допоможіть.

Відповіді:


471

Використовуйте замість синтаксису зв'язування атрибутів

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

або

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

Дивитися також :


20
як я можу отримати доступ до значення атрибута даних?
Шон Ш

4
Створіть нове запитання з деяким кодом, який демонструє, що ви намагаєтеся виконати.
Günter Zöchbauer

10
Це має бути відповідь Googles №1 для запиту "Не можна зв’язати", оскільки це не відома властивість запиту. Цей коментар може трохи допомогти ...
netzaffin

1
@netzaffin Це корисна відповідь, але я зіткнувся з помилкою помилки багато разів, і це перший раз, коли це була справжня проблема / рішення.
Стік Underflow

32

Про доступ

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

І

get_data(event) {
   console.log(event.target.dataset.sectionvalue)
}
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.