访问typescript中的jquery变量

时间:2017-08-24 20:34:50

标签: jquery angularjs typescript ionic-framework

我正在尝试使用jquery $ ajax()函数调用Web api,在调用之后我不会将结果存储在我的typescript变量中,但我不知道该怎么做。

 $.ajax({
  method: "POST",
  url: 'URL',
  data: { email:'test@gmail.com',
      password:'pass'}

})
.done(function(msg ) {

  this.response=msg;

}) .fail(function(msg) {
  this.response=msg;
})

1 个答案:

答案 0 :(得分:0)

如果要在进行Ajax调用的对象上设置它,可以使用箭头函数捕获上下文

class MyCaller {
   response: any;
   doCall() {
      $.ajax({
         method: "POST",
         url: 'URL',
         data: { email:'test@gmail.com', password:'pass'}
     }).done((msg ) => {
       // this refers to MyCaller, with a simple function it would not
       this.response=msg; 
     }).fail((msg) => {
       this.response=msg;
     })     
   }
}

只要您使用TypeScript,就可以利用异步并等待简化代码。这相当于:

class MyCaller {
    response: any;
    async doCall() {
        try {
            this.response = await $.ajax({
                method: "POST",
                url: 'URL',
                data: { email:'test@gmail.com', password:'pass'}
            })
        }catch(error) {
            this.response = error
        }
    }
}