Ich hole HTML-Blöcke von einer externen Quelle mit HTTP-get und füge es in meine Anwendung mit innerHTML-Funktion. Ich versuche, mit dem Namen getElementsByClassName auf eine div-Klasse zuzugreifen. Dies ist, wie die respons wie folgt aussehen:getElementByClass von HTML aus einer externen Quelle geholt -> undefined
Wenn ich versuche, mit Indizierung eines der Objekte in der Liste zuzugreifen, (ex Ergebnis [0]), erhalte ich wieder nicht definiert. Weiß jemand, warum das passiert?
Danke!
Update:
Ich habe festgestellt, was das Problem war. Der HTML-Code wurde nicht richtig initialisiert, bevor ich versuchte, darauf zuzugreifen.
Dies ist meine Funktion, die HTML-Block aus meiner Serviceklasse holt.
getNewsFeed(){
this.homeService.getNewsFeed()
.subscribe(res =>
this.news_block = res,
error=>this.news_feed_error=true,
()=> this.news_feed_error=false
);
getNewsfeed ausgeführt von:
ngOnInit(){
this.getNewsFeed();
}
Ich betreibe getElementByClassName in ngAfterViewInit
ngAfterViewInit(){
console.log(document.getElementsByClassName("overlayWrapper"));
}
ich die Antwort von getNewsFeed laden() in meine Wähler mit:
<div *ngIf="news_block" [innerHtml]="news_block"></div>
Bitte zeigen Sie einige tatsächliche Code, der zeigt, was Sie tun. Idealerweise ein Plünderer, der sich reproduzieren lässt. –
Ive gefunden, was das Problem war, das HTML wurde nicht richtig initialisiert, bevor ich versuchte, darauf zuzugreifen. Zuerst habe ich die Funktion in ngOnInit ausgeführt. Ich habe versucht, ngAfterViewInit() zu verwenden, aber das hat mein Problem nicht gelöst. Hast du irgendwelche Vorschläge? –
Wie schon erwähnt, ohne einen wirklichen Code zu sehen, ist es schwierig, Vorschläge zu machen. –