Привязка к неизвестным свойствам, таким как атрибуты 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)"
.
Таким образом, ошибка верна, и мы определенно хотим сгенерировать неизвестные свойства, поскольку привязка к несуществующим свойствам не будет иметь никакого эффекта — в большинстве случаев это ошибка пользователя.
Круто, я не знал о префиксе attr.
. Это должно быть четко задокументировано, когда придет время для проведения GA.
Однако я думаю, что есть возможность улучшить сообщение, которое мы выдаем, когда привязка пропускает префикс attr.
. Если бы мы могли просто распечатать что-то вроде этого, мне бы даже не понадобилась документация:
*_ИСКЛЮЧЕНИЕ: невозможно привязать к 'foo', так как это неизвестное свойство элемента ' ' и нет соответствующих директив с соответствующим свойством. *_
Эту проблему можно использовать для отслеживания улучшения этого сообщения.
Эта проблема была автоматически заблокирована из-за бездействия.
Пожалуйста, создайте новую проблему, если вы столкнулись с похожей или связанной проблемой.
Узнайте больше о нашей политике автоматической блокировки разговоров .
_Это действие было выполнено автоматически ботом._
Самый полезный комментарий
Элементы DOM не имеют
aria-expanded
_property_, есть только _attribute_ с таким именем. Если вы хотите привязать атрибут, вам нужно добавить к его имени префиксattr.
, например:[attr.aria-expanded]="isFirstError(error)"
.Таким образом, ошибка верна, и мы определенно хотим сгенерировать неизвестные свойства, поскольку привязка к несуществующим свойствам не будет иметь никакого эффекта — в большинстве случаев это ошибка пользователя.