Angular: Привязка к неизвестным свойствам (таким как атрибуты Aria) приводит к ошибке.

Созданный на 27 сент. 2015  ·  3Комментарии  ·  Источник: angular/angular

Привязка к неизвестным свойствам, таким как атрибуты Aria, приводит к ошибке. Например:

<a class="cell-anchor " [aria-expanded]="isFirstError(error)" role="button" data-toggle="collapse" data-parent="#accordion" href="#collapse-{{error.id}}" aria-expanded="false">

Приведет к следующему исключению при загрузке компонента, шаблон которого включает этот код:

ИСКЛЮЧЕНИЕ: невозможно выполнить привязку к 'ariaExpanded', так как это неизвестное свойство элемента ' ' и нет соответствующих директив с соответствующим свойством.

Оказывается, атрибуты aria часто содержат тире, поэтому мы конвертируем в ariaExpanded, что не совсем правильно (возможно, есть механизм экранирования, о котором я не знаю?'). Однако это не основная причина, поскольку привязка к чему-либо неизвестному вызовет ту же проблему:

ИСКЛЮЧЕНИЕ: невозможно привязать к 'foo', так как это не известное свойство элемента ' ' и нет соответствующих директив с соответствующим свойством

Пожалуйста, дайте мне знать, если нужен плункер, и я его создам.

Самый полезный комментарий

Элементы DOM не имеют aria-expanded _property_, есть только _attribute_ с таким именем. Если вы хотите привязать атрибут, вам нужно добавить к его имени префикс attr. , например: [attr.aria-expanded]="isFirstError(error)" .

Таким образом, ошибка верна, и мы определенно хотим сгенерировать неизвестные свойства, поскольку привязка к несуществующим свойствам не будет иметь никакого эффекта — в большинстве случаев это ошибка пользователя.

Все 3 Комментарий

Элементы DOM не имеют aria-expanded _property_, есть только _attribute_ с таким именем. Если вы хотите привязать атрибут, вам нужно добавить к его имени префикс attr. , например: [attr.aria-expanded]="isFirstError(error)" .

Таким образом, ошибка верна, и мы определенно хотим сгенерировать неизвестные свойства, поскольку привязка к несуществующим свойствам не будет иметь никакого эффекта — в большинстве случаев это ошибка пользователя.

Круто, я не знал о префиксе attr. . Это должно быть четко задокументировано, когда придет время для проведения GA.

Однако я думаю, что есть возможность улучшить сообщение, которое мы выдаем, когда привязка пропускает префикс attr. . Если бы мы могли просто распечатать что-то вроде этого, мне бы даже не понадобилась документация:

*_ИСКЛЮЧЕНИЕ: невозможно привязать к 'foo', так как это неизвестное свойство элемента ' ' и нет соответствующих директив с соответствующим свойством. *_

Эту проблему можно использовать для отслеживания улучшения этого сообщения.

Эта проблема была автоматически заблокирована из-за бездействия.
Пожалуйста, создайте новую проблему, если вы столкнулись с похожей или связанной проблемой.

Узнайте больше о нашей политике автоматической блокировки разговоров .

_Это действие было выполнено автоматически ботом._

Была ли эта страница полезной?
0 / 5 - 0 рейтинги