【发布时间】:2021-06-07 06:35:33
【问题描述】:
首先,我将 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}`);
}
我知道这是我经常遇到的典型问题,但是现在我不知道如何解决它。我试图在不同的论坛中寻找未定义的问题,但我仍然无法解决它。非常感谢
【问题讨论】:
标签: angular typescript ionic-framework sanitizer