Возможно ли генерация полей при получении 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.
И читайте документацию, там такие кейсы описаны.
Полозюков Евгений Петрович, Спасибо за помощь. Я понял идею