Мой проект angular5 получает полный набор HTML-контента со стороны API, и я показываю его как есть. Теперь, после загрузки, мне нужно выбрать некоторые элементы div, где на его onClick он применит поле выбора вокруг этого конкретного div. Я не могу ввести событие щелчка из файла машинописного текста. Может ли кто-нибудь помочь с этим? Ниже приведен код, который я использовал для визуализации HTML-кода для просмотра. Заранее спасибо.
import {Component, OnInit, Pipe, PipeTransform, ElementRef, Renderer2}
from '@angular/core';
import {SurveyFormPreviewService} from './survey-form-preview.service';
import {DomSanitizer} from '@angular/platform-browser';
@Pipe({name: 'safeHtml'})
export class SafeHtmlPipe implements PipeTransform {
constructor(private sanitized: DomSanitizer) {}
transform(value) {
console.info(this.sanitized.bypassSecurityTrustHtml(value))
return this.sanitized.bypassSecurityTrustHtml(value);
}
}
@Component({
selector: 'app-survey-form-preview',
template: '<div [innerHTML] = "htmlString | safeHtml"></div>',
styleUrls: ['./survey-form-preview.component.css']
})
export class SurveyFormPreviewComponent implements OnInit {
htmlString: SafeHtmlPipe;
constructor(private surveyFormPreview: SurveyFormPreviewService, private elementRef: ElementRef,
private renderer: Renderer2, private elRef: ElementRef
) {
this.getSurveyFormPreview(1);
}
getSurveyFormPreview(surveyId: number): void {
surveyId = 5;
this.surveyFormPreview.getPreview(surveyId)
.subscribe(
resp => {
this.htmlString = resp["html"];
},
error => console.info(error));
}
Пожалуйста, покажите код. Ваш API должен возвращать HTML? Обычно при использовании Angular вы хотите, чтобы ваш веб-сервис возвращал данные JSON и отображал HTML на стороне клиента.
возможный дубликат этого вопрос
@Jeto: да, я получаю полный набор HTML-кода в виде данных JSON. Мне нужно отрендерить из него страницу и добавить в нее некоторые функции.
@fatemefazli на самом деле я пробовал это с селектором запросов 'this .elRef.nativeElement' возвращает содержимое HTML, но с помощью селектора запросов он показывает null. Я использовал "класс", чтобы идентифицировать div.
Я думаю, что проблема в том, что я получаю полный HTML-контент, поэтому, когда я назначаю внутренний HTML-код для div, содержимое снова начинается с тега <html> внутри этого div. Вот почему я не могу выбрать div внутри HTML-содержимого. Тем не менее, у меня нет никакого решения, как я это делаю.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы можете использовать
ReadyState, чтобы узнать, когда все данные загружены, а затем вы можете использоватьjquery, чтобы щелкнуть по этомуDIV.