Получение вызова Ajax для возврата в мой контекст Javascript - PullRequest
0 голосов
/ 01 сентября 2009

Имея экземплярный объект / класс JavaScript, могу ли я сделать Ajax-вызов из этого класса и получить обратный вызов функции успеха в объекте вызывающей стороны?

В настоящее время я могу получить обратный вызов для возврата обратно в объект, но я теряю свойство "this", которое убивает состояние моего объекта

function BaseConsoleHelper()
{
this._iconIndex = 0;
} 
BaseConsoleHelper.prototype = {
Dispose: function()
{
this._previousIndex = 0;
},
GetVisitConsoleIcons: function(name)
{
    this._iconIndex = 500;

    SampleNamespace.MyService.GetConsoleIcons(name, this.IconsGenerated);
},
IconsGenerated : function(result)
{ 
    //I should be 500.....but I'm not, cause "this" has become something else
    alert( this._iconIndex );
}
};

Кстати, я использую asp.net ajax 3.5 (и, вау, наследование здесь не отличается от чистого JavaScript)

1 Ответ

1 голос
/ 01 сентября 2009

Изменить эту строку:

SampleNamespace.MyService.GetConsoleIcons(name, this.IconsGenerated);

до:

SampleNamespace.MyService.GetConsoleIcons(name, 
    Function.createDelegate(this, this.IconsGenerated)
);

См. в этой статье для получения дополнительных примеров сохранения ссылок на this в вызовах веб-службы.

...