2
votes

Comment obtenir les attributs de nœud DOM dans Angular

J'utilise cette réponse pour convertir une chaîne HTML en éléments DOM dans Angular.

Le problème est que Je ne parviens pas à obtenir les attributs de Node . getAttribute () ne peut pas être utilisé car tapuscript se plaindra que Aucune propriété getAttribute sur le nœud .

Le code est ci-dessous (simplifié).

< pré> XXX


0 commentaires

3 Réponses :


0
votes

Vous pouvez définir la propriété anchors comme un tableau de n'importe quel

const anchors: NodeList [] = Array.from(anchorNodes);

et ne devrait pas être un tableau Noedlist car votre code se réfère à cela dans la ligne précédente-

const anchors: any[] = Array.from(anchorNodes);


0 commentaires

3
votes

La vue de TypeScript de l'API. Pour le moment, il n'y a aucun moyen de dire que le type de foo.parentNode dépend du type de foo. Actuellement, il est déduit qu'il est toujours de type Node et Node ne contient pas l'API querySelector (disponible sur Element)

FIX

Utilisez une assertion de type comme indiqué :

Au lieu de:

(<Element>anchor).getAttribute('href')

Utilisez:

anchor.getAttribute('href')


0 commentaires

1
votes

Vous pouvez utiliser l'interface NodeListOf à la place.

const anchorNodes: NodeListOf<HTMLAnchorElement> = template.content.querySelectorAll('a');
const anchors: HTMLAnchorElement[] = Array.from(anchorNodes);


0 commentaires