访问打字稿中的jquery变量

Posted

技术标签:

【中文标题】访问打字稿中的jquery变量【英文标题】:access a jquery variable inside typescript 【发布时间】:2018-02-02 20:34:12 【问题描述】:

我正在尝试使用 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;
)

【问题讨论】:

在 ajax 调用之外声明一个变量并将结果存储在那里。 @Our_Benefactors 嗯.. 不... this 不是你想象的那样,即使是这样,做你正在做的事情也不会奏效。您需要改用承诺 $.ajax 返回。 【参考方案1】:

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

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,您就可以利用 async 和 await 来简化您的代码。这将是等效的:

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
        
    

【讨论】:

很高兴听到 :)

以上是关于访问打字稿中的jquery变量的主要内容,如果未能解决你的问题,请参考以下文章

我们可以在打字稿中访问另一个类中的私有变量吗

如何在打字稿中键入枚举变量?

如何访问打字稿中的字段验证错误?

无法访问父组件 React 打字稿中的转发 Ref 值

打字稿中的通用对象类型

打字稿中的数组