Я новичок в Angular и TS. Я пытаюсь получить доступ к локальной переменной, которая находится в ngOnInit, извне, но я не знаю, как это сделать правильно. У меня есть компонент BlocklyComponent, в котором я создал var.
export class BlocklyComponent implements OnInit {
primaryWorkspace: Blockly.WorkspaceSvg;
constructor(private sanitizer: DomSanitizer) {
this.updateXML = this.updateXML.bind(this);
}
ngOnInit() {
var primaryWorkspace = Blockly.inject('primaryDiv',{....} as Blockly.BlocklyOptions);
Внутри функции NgOnInit все работает правильно, я вижу объект без проблем. Однако, когда я добавляю addchangeListener для чтения при возникновении события, я не могу получить доступ к этой локальной переменной из новой функции, которая находится вне ngOnInit.
primaryWorkspace.addChangeListener(this.updateXML); //addChangeListener is special for Blockly library
}
updateXML(primaryEvent )
{
if (primaryEvent.isUiEvent)
{
return; //Do not clone ui events
};
var xml = Blockly.Xml.workspaceToDom(primaryWorkspace); //XML machine. Blockly is a library.
console.log(xml);
}
Я попытался добавить это (this.primaryWorkspace) к вызову, но он принимает свойство, а не локальную переменную. Я знаю, что можно создать функцию внутри ngOnInit, и она работает, но мне нужно создать updateXML снаружи. Большое спасибо