如何从类似脚本中的Ajax调用的函数内部调用类中的函数?

时间:2012-11-16 10:10:27

标签: javascript typescript

我有以下打字稿代码:

   export class Modal {

        private link: Link;

        constructor (public $link: JQuery) {
            this.link = new Link($link);
            this.ajaxGet(this.link);
        }

        ajaxGet(link: Link) {
             $.ajax(link.Href,
            {
                context: {
                    link: link
                },
                dataType: 'html'
            })
                .done(this.ajaxDone)
                .fail(this.ajaxFail);
        }

        ajaxDone(data: string, textStatus: string, jqXHR: JQueryXHR) {
            var link = <Link> this.link;
            link.Modal.Content = data;
            this.create(link);
        }

        create(link: Link) {
           var a = link;
        }


    }

这可以达到ajaxDone中我有一个this.create(链接)的地步。问题是“这个”不再是模态,它没有创建功能。如何让它在此时调用Modal.Create()函数?

1 个答案:

答案 0 :(得分:2)

我认为您的上下文在Ajax调用中是错误的 - 上下文是......

  

此对象将成为所有与Ajax相关的回调的上下文

http://api.jquery.com/jQuery.ajax/

$.ajax(this.link.Href, {
    context: this,
    dataType: 'html'
})
.done(this.ajaxDone)
.fail(this.ajaxFail);