Angular: A associação a propriedades desconhecidas (como atributos Aria) resulta em erro.

Criado em 27 set. 2015  ·  3Comentários  ·  Fonte: angular/angular

A associação a propriedades desconhecidas, como atributos Aria, resulta em erro. Por exemplo:

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

Resultará na seguinte exceção quando o componente cujo modelo inclui este código for carregado:

EXCEÇÃO: Não é possível vincular a 'ariaExpanded' pois não é uma propriedade conhecida do elemento ' ' e não há diretivas correspondentes com uma propriedade correspondente

Acontece que os atributos aria geralmente incluem traços, então estamos convertendo para ariaExpanded, o que não é realmente correto (talvez haja um mecanismo de escape que eu não saiba?'). Essa não é a causa raiz disso, pois vincular a qualquer coisa desconhecida causará o mesmo problema:

EXCEÇÃO: Não é possível vincular a 'foo', pois não é uma propriedade conhecida do elemento ' ' e não há diretivas correspondentes com uma propriedade correspondente

Por favor, deixe-me saber se um plunker é necessário e eu vou criar um.

Comentários muito úteis

Elementos DOM não possuem aria-expanded _property_ existe apenas um _attribute_ com tal nome. Se você deseja vincular a um atributo, você precisa prefixar seu nome com attr. , ex.: [attr.aria-expanded]="isFirstError(error)" .

Portanto, o erro está correto e definitivamente queremos lançar para propriedades desconhecidas, pois a vinculação a propriedades inexistentes não teria nenhum efeito - esse é um erro do usuário na maioria das vezes.

Todos 3 comentários

Elementos DOM não possuem aria-expanded _property_ existe apenas um _attribute_ com tal nome. Se você deseja vincular a um atributo, você precisa prefixar seu nome com attr. , ex.: [attr.aria-expanded]="isFirstError(error)" .

Portanto, o erro está correto e definitivamente queremos lançar para propriedades desconhecidas, pois a vinculação a propriedades inexistentes não teria nenhum efeito - esse é um erro do usuário na maioria das vezes.

Legal, eu não conhecia o prefixo attr. . Isso deve ser claramente documentado, sempre que chegar a hora de ir para GA.

Eu acho, no entanto, que há uma oportunidade de melhorar a mensagem que damos quando a ligação perde o prefixo attr. . Se pudéssemos imprimir algo assim, eu nem precisaria da documentação:

*_EXCEPTION: Não é possível vincular a 'foo' pois não é uma propriedade conhecida do elemento ' ' e não há diretivas correspondentes com uma propriedade correspondente. *_

Esse problema pode ser usado para rastrear a melhoria desta mensagem.

Este problema foi bloqueado automaticamente devido à inatividade.
Registre um novo problema se você estiver encontrando um problema semelhante ou relacionado.

Leia mais sobre nossa política de bloqueio automático de conversas .

_Esta ação foi realizada automaticamente por um bot._

Esta página foi útil?
0 / 5 - 0 avaliações