如何从Angular中的另一个函数调用一个函数?

时间:2018-09-13 08:30:48

标签: angular typescript ionic-framework ionic2 ionic3

简要说明::从输入类型(从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]类型'XMLHttpRequest'上不存在属性'callproducts'

2 个答案:

答案 0 :(得分:0)

如果我是正确的话,“ this”等于“ oReq”。我不相信“这个”。是正确的。尝试不带此功能的callProducts。

答案 1 :(得分:0)

您不能在另一个函数内调用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){

  }
}