Как я могу написать атрибуты данных, используя Angular?


229

Когда я пытаюсь использовать data attributeв моем template, как это:

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

Angular 2 падает с:

ИСКЛЮЧЕНИЕ: ошибки синтаксического анализа шаблона: невозможно связать с 'sectionvalue', поскольку оно не является известным собственным свойством ("

] 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
Пожалуйста, создайте новый вопрос с некоторым кодом, который демонстрирует, что вы пытаетесь достичь.
Гюнтер Цохбауэр

10
Это должен быть ответ Googles # 1 для Can't bind to '', так как это не известное свойство запроса '' . Этот комментарий может помочь немного ...
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.