0

我正在使用 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()不起作用,因为thisnow 指的是 jQuery 回发,而不是控制器。通过将控制器作为 eventData 传入,我能够在$(window).resize()方法中解决这个问题,但我没有看到$.post(). 有没有办法从 post 函数内部引用原始控制器和后续视图?

4

1 回答 1

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');
    });
}
于 2013-05-28T19:39:40.397 回答