Определение функции для успешного обработчика для ajax-вызова в другом файле возможно?

0

Я хочу два отдельных файла один для ajax-вызовов (API, jquery) и один для кода для визуализации данных (jquery, knockoutjs). API имеет одну функцию для ajax-вызовов, к которой будет передано несколько параметров, включая success- и обработчики ошибок. Причина этого: я хочу определить обработчик success- (который должен быть определен "индивидуально" - в зависимости от вызываемой службы) в файле, который содержит код на стороне клиента.

В API файле:

  var GET_ALL_WORDS = '/dict/rest/dictionary';//get

   ...

    /** Parameters:
    * GET/POST
    * URL
    * data: word record - json OR searchedWord, single word- String OR null
    * successHandler - function handling returned data (json)
    * error-handler - general handler for errors, defined in this file
    **/

  function dictRPCcall(method, url, data, successHandler, failedHandler) {
    console.log("in dictRPCcall");
        $.ajax({
            type: method,
            contentType: "application/json",
            data: data,
            url: url,
            success: successHandler,
            error: failedHandler,
            dataType: "json"
        });
    }

   //functions that will be called by client-side.

    function getWordsRPCcall(successHandler) {
    console.log("in WordsRPCcall")
        dictRPCcall(GET, GET_ALL_WORDS, null, successHandler, failedREST);
        console.log("afer ajax-call in WordsRPCcall")
    }

    function insertWordRecordRPCcall(wordRecord, successHandler) {
        dictRPCcall(POST, INSERT_WORD_RECORD, wordRecord, successHandler, failedREST);
    }
...

В файле client-js файл:

    function successHandler(data, textStatus, jqXHR ){
    //handling responded data from Server
    console.log("successHandler " + "textstatus:" +textStatus + "data: " + data);
    }

    ...calling getWordRPCcall and passing in the success-handler ....

Вопросов:

  • Можно ли определить обработчик success- в другом файле, чем ajax-вызов?
  • Как функция обработчика success- доступа к объекту jqXHR и другим параметрам, возвращаемым и переданным функции обратного вызова ajax-вызова?
  • Если это невозможно - как мне удается "динамизировать" обработчик success-?
  • Неужели я совершенно не прав, чтобы попробовать это, и просто нехорошо или что-то в этом роде?

Пожалуйста, дайте мне знать, если вопрос не подходит, и необходимо добавить некоторую информацию. До тех пор, Meru

  • 0
    Пока функция находится в области видимости, вы можете определить ее в другом файле, поэтому никаких проблем, пока вы поддерживаете порядок.
Теги:
jquery-callback

1 ответ

1
Лучший ответ

изменения

success: successHandler,

чтобы:

  success: function(data, textStatus, jqXHR) { 
      successHandler(data, textStatus, jqXHR); 
   },

Это делает вызов и передает эти аргументы.


Мы предполагаем, что клиент js, содержащий функцию successHandler, загружен и доступен.

редактировать/обновление:

на самом деле success: successHandler, проходит через params, так как это функция (duh me) - все равно, оставляя это здесь, поскольку, может быть, объясняет, что происходит более буквально

Ещё вопросы

Сообщество Overcoder
Наверх
Меню