jQuery Post eventData

时间:2013-05-28 19:36:43

标签: jquery post

我正在使用jQuery构建一个Web应用程序,并遵循伪MVC模型。我有以下方法:

function Controller() {
    this.view = new View(this);
    $(window).resize(this, function (event) {
        event.data.view.screenResize();
    });
    this.getImages();
}

Controller.prototype.getImages = function () {
    this.view.showMessage('Getting Available Images');
    $.post("../async", {cmd: 'getimages', data: ''}, function(data) {
        this.view.showMessage('Found Images');
    });
}

然而,this.view.showMessage()中的$.post()不起作用,因为this现在引用了jQuery回发,而不是控制器。通过将控制器作为eventData传入,我能够在$(window).resize()方法中解决这个问题,但我没有看到$.post()。有什么方法可以从post函数内部引用原始控制器和后续视图吗?

1 个答案:

答案 0 :(得分:0)

您处于回调函数的范围内,因此this指向它。试试这个:

Controller.prototype.getImages = function () {
    var $this = this;
    this.view.showMessage('Getting Available Images');
    $.post("../async", {cmd: 'getimages', data: ''}, function(data) {
        $this.view.showMessage('Found Images');
    });
}