Доступ к локальной переменной из ngOnInit из другой функции

Я новичок в 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 снаружи. Большое спасибо


person Sam    schedule 09.03.2021    source источник


Ответы (1)


Наконец, это была простая проблема. Я сам решил проблему, объявив var как this.primaryWorkspace вместо того, чтобы объявить его как VAR.

person Sam    schedule 10.03.2021