我正在使用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函数内部引用原始控制器和后续视图吗?
答案 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');
});
}