2013-06-05 4 views
0

Я использую knockoutjs и имею несколько вызовов ajax в моем проекте в разных файлах сценариев. Я хочу упорядочить звонки в одну утилиту сценария и я реализовал следующие:jQuery AJAX Success callback

файл сценария A:

function ABC(){ 
function myCallbackFunction(result){ 
/// 
} 
$Callbacks.add(myCallbackFunction); 

var UtilityObj = new ClsUtility(); 
UtilityObj .GetData(myJSONObj); 
} 

Script File B: 
function ClsUtility(){ 
function GetData(myJSONObj){ 
$.ajax(
//// 
success: $.Callbacks.fire(result); 
); 

} 
} 

Функция обратного вызова не вызывался. Помогите мне найти решение.

Спасибо, Рахул Adwani

+0

вы можете поделиться немного больше кода, будет оценена рабочая скрипка –

+0

'success: $ .Callbacks.fire (result);' похоже, что вы ** вызываете ** обратные вызовы в этой точке вместо ** присваивания ** одного, если '.fire' действительно не возвращает функцию. –

+0

Я изменил код, чтобы он выглядел так: success: function (result) { $ .Callbacks.fire (result); } все еще функция обратного вызова не выполняется. –

ответ

0

Вы можете удалить скобки, как:

success: $.Callbacks.fire 

, что эквивалентно:

success: function(result){ 
    $.Callbacks.fire(result); 
} 

, но вы не можете установить функцию указателя с скобкой

+0

Это может быть не эквивалентно. В первом случае 'this', вероятно, относится к' window' внутри '.fire', во втором - к' $ .Callbacks'. В зависимости от того, как структурирован код, это может быть проблемой или нет. –

+0

Я пробовал оба решения ... нет вывода .. –