BX24.callMethod
Отправка запроса:
void BX24.callMethod( String method, Object params[, Function callback] );
Метод вызывает указанный метод REST-сервиса с указанными параметрам. В качестве параметров метода выступает объект params, представляющий собой ассоциативный массив, преобразуемый в строку POST-запроса. Значениями элементов массива могут быть строки или ссылки на DOM-элементы полей формы (см. отправку файлов ниже).
В случае вызова до BX24.init выполнение запроса будет отложено.
Пример
BX24.callMethod('user.get', {ID: 10}, function(res){ if(res.data()) { var user = res.data()[0]; if(!!user) alert('Пользователя №' + user.ID + ' зовут ' + user.NAME); } });
Обработка результата запроса
Обработчиком результата запроса является функция, получающая на вход объект ajaxResult такого вида:
ajaxResult.prototype.data = function() - функция, возвращающая ответ метода в виде массива, объекта или скаляра. См. описание конкретных методов.
Boolean|String ajaxResult.prototype.error = function() - функция, возвращающая ошибку при ее наличии и false при отсутствии.
Некоторые методы могут возвращать большие массивы данных. В этом случае данные возвращаются частями по 50 элементов (методы могут перекрывать это значение, см. описание конкретных методов). Для работы со списками объект ajaxResult имеет следующие методы:
- Boolean ajaxResult.prototype.more = function() - функция, возвращающая флаг "есть еще данные для загрузки". Применимо, если метод возвращает список данных.
- Integer ajaxResult.prototype.total = function() - функция, возвращающая общее количество доступных записей. Применимо, если метод возвращает список данных.
- Boolean|XMLHttpRequest|XDomainRequest ajaxResult.prototype.next = function([Function cb]) - функция, запрашивающая следующую страницу данных. По умолчанию будет вызван тот же самый обработчик результата запроса. Переопределить это поведение можно, установив значение параметра cb.
Пример получения постраничного списка пользователей
BX24.callMethod('user.get', {sort:'ID',order:'ASC'}, function(result){ if(result.error()) { alert('Ошибка запроса: ' + result.error()); } else { console.log(result.data()); if(result.more()) result.next(); } });