2013-05-28 61 views
0

我正在構建一個使用jQuery的Web應用程序,並遵循僞MVC模型。我有以下幾種方法:jQuery Post事件數據

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'); 
    }); 
} 

然而,$.post()this.view.showMessage()不起作用,因爲this現指jQuery的回傳,而不是控制。通過傳入控制器作爲eventData,我能夠在$(window).resize()方法中解決這個問題,但我沒有看到$.post()。有沒有辦法引用原始控制器以及後期功能中的後續視圖?

回答

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'); 
    }); 
} 
+0

哇,那很簡單!謝謝! –