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é> XXX3 Réponses :
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);
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')
Vous pouvez utiliser l'interface NodeListOf
à la place.
const anchorNodes: NodeListOf<HTMLAnchorElement> = template.content.querySelectorAll('a'); const anchors: HTMLAnchorElement[] = Array.from(anchorNodes);