1

我有以下打字稿代码:

   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(link)。问题是“this”不再是 Modal 并且它没有创建功能。此时如何让它调用 Modal.Create() 函数?

4

1 回答 1

2

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

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

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

$.ajax(this.link.Href, {
    context: this,
    dataType: 'html'
})
.done(this.ajaxDone)
.fail(this.ajaxFail);
于 2012-11-16T10:34:20.423 回答