Как вызвать функцию из другой функции в Angular? - PullRequest
0 голосов
/ 13 сентября 2018

Краткое объяснение: onFileSelected(event) вызывается, когда файл выбран из типа ввода (из Home.html), все работает нормально, кроме случаев, когда я пытаюсь вызвать this.callproducts(data,0,c_altcode).

Ниже приведен мой home.ts код, укажите, где я ошибаюсь.

 onFileSelected(event)
  {
    var file = event.target.files[0];
        ...// some code here
    oReq.onload = function(e) {
        ...// some code here

if(oReq.status === 200)
          { 
            if(final_arr[0].hasOwnProperty("Altcode"))
            {
              var c_altcode =final_arr[0].hasOwnProperty("Altcode");

         // error coming in below line when i am trying to call this function which is outside `onFileSelected` function. 
          this.callproducts(data,0,c_altcode);           
                }

          }
        }

        oReq.send(null);
  }


callproducts(a,b,c,d){
...//some code here
}

Ошибка появляется, когда я пытаюсь вызвать эту функцию, которая находится вне функции onFileSelected.

Произошла ошибка: [ts] Свойство 'callproducts' не существует для типа 'XMLHttpRequest'

Ответы [ 2 ]

0 голосов
/ 13 сентября 2018

Вы не можете вызвать this.callproducts(data,0,c_altcode) внутри другой функции, потому что она не входит в область действия component's.

Но вы можете попробовать ниже.

export class HomePage {

  constructor() {}

 onFileSelected(event) {

    let file = event.target.files[0];

    oReq.onload = function(e) {

        if(oReq.status === 200) { 

            if(final_arr[0].hasOwnProperty("Altcode")) {

              let c_altcode =final_arr[0].hasOwnProperty("Altcode");
              HomePage.callproducts(data,0,c_altcode);           
            }
          }
        }
        oReq.send(null);
  }

static callproducts(a,b,c,d){

  }
}
0 голосов
/ 13 сентября 2018

«this» равно «oReq», если я прав.Я не верю, что "это".Правильно.Попробуйте просто позвонить без этой продукции.

...