Сначала я импортировал DomSanitizer в компонент:
import { DomSanitizer, SafeResourceUrl} from '@angular/platform-browser';
После этого я создал класс и добавил его в конструктор:
export class BlocklyComponent implements OnInit {
primaryWorkspace: Blockly.WorkspaceSvg;
GEE = "PCFET0NUWVBFIGh0bWw+Cgo8aGVhZD4KPG1ldGEgY29udGVudD0idGV4dC9odG1sOyBjaGFyc...";
public geeMap: SafeResourceUrl;
constructor(private sanitizer: DomSanitizer) {}
ngOnInit() {
Внутри функции NgOnInit работает корректно, однако в функции updateURL (вне NgOnInit, но внутри класса) пишет, что this.sanitizer не определен:
//Creates de src that has to be in the iframe. What I need to do is to update this safeResourceUrl.
this.geeMap = this.sanitizer.bypassSecurityTrustResourceUrl(`data:text/html;base64,${this.GEE}`);
//Reads the events in a workspace. When it notices a change, it triggers the updateURL function
primaryWorkspace.addChangeListener(this.updateURL);
}
updateURL(primaryEvent)
{
if (primaryEvent.isUiEvent) {
return; //Do not clone ui events
};
console.log('hola');
//Problem. Here it sais that this.sanitizer is undefined.
this.geeMap = this.sanitizer.bypassSecurityTrustResourceUrl(`data:text/html;base64,${this.GEE}`);
}
Я знаю, что это типичная проблема, которая случалась со мной много раз, однако теперь я не знаю, как ее решить. Я пытался найти неопределенную проблему на разных форумах, но так и не смог ее решить. Большое спасибо