Возможно ли генерация полей при получении n-массива из веб сервера
Доброго времени суток коллеги. У меня возникли две проблемы. Имею вызов метода
SetUrlAnswer: function() {
var xhr = new XMLHttpRequest();
var url = "http://localhost/0/rest/Service1/Testing";
xhr.open("GET", url);
xhr.responseType = "json";
xhr.setRequestHeader("Content-type", "application/json");
var self = this;
xhr.onreadystatechange = function() {
if (xhr.readyState === 4 && xhr.status === 200) {
// for (var i = 0; i < xhr.length; i++ ) {
self.set("UsrCharCode",
JSON.stringify(xhr.response[0].CharCode));
self.set("UsrID",
JSON.stringify(xhr.response[0].ID));
self.set("UsrNameV",
JSON.stringify(xhr.response[0].Name));
self.set("UsrNominal",
JSON.stringify(xhr.response[0].Nominal));
self.set("UsrNumCode",
JSON.stringify(xhr.response[0].NumCode));
self.set("UsrPrevious",
JSON.stringify(xhr.response[0].Previous));
self.set("UsrValues",
JSON.stringify(xhr.response[0].Value));
// }
} else {
// Пока не реализовано
self.set("UsrCharCode", "Не правильное получение данных!");
}
};xhr.send();
Как мне сделать правильную итерацию? Чтобы вот такого говно-кода избежать?
Вопрос второй(очень важный): Этот метод возвращает каждый раз разный массив данных. Вопрос в том Creatio предусмотрено генерация полей исходя из ответа сервера? Например мне в ответ приходит 4 видов валют USD, RUB, EUR, UZS и исходя из ответа сгенерировать таких групп полей:
Надеюсь смог объяснить свою боль. Спасибо
Нравится
Ислам Ибрагимжанов,
Я описал общую идею как работает DataService, можете поискать реализацию и попробовать понять, но это про сложные вещи.
Вам пока нужно начать использовать ServiceHelper и его функцию callService.
И читайте документацию, там такие кейсы описаны.
Зачем вы используете чистый XMLHttpRequest, уже есть классы для работы с сервисами.
https://academy.terrasoft.ru/docs/7-16/developer/back-end_development/c…
Итерацию можно сделать циклом по массиву с наименованиями полей. Можно сделать по переменным объекта. Список полей для итерации можно возвращать со стороны сервера. Тут у вас полная свобода действий.
Полозюков Евгений Петрович,
Я не понял один момент
Список полей для итерации можно возвращать со стороны сервера. Тут у вас полная свобода действий.
Вы это про мой второй вопрос? Я что то не до конца понял.
Ислам Ибрагимжанов,
Да, это про второй вопрос. Если у вас в ответе возвращается каждый раз разный набор полей и их значений, можно описать это в виде массива или объекта и его итерировать.
Полозюков Евгений Петрович,
Мне нужно сгенерировать поля для этих данных. Через выше указанный способ релаьно реализовать такое?
Ислам Ибрагимжанов,
Я описал общую идею как работает DataService, можете поискать реализацию и попробовать понять, но это про сложные вещи.
Вам пока нужно начать использовать ServiceHelper и его функцию callService.
И читайте документацию, там такие кейсы описаны.
Полозюков Евгений Петрович, Спасибо за помощь. Я понял идею![]()