Nano Hash - криптовалюты, майнинг, программирование

Как получить ответ на запрос полимера 1 в железной форме

я пытаюсь получить ответ от iron-form in Polymer 1.

Отправка формы вызывает php-скрипт, который возвращает HTML-код для вставки в div (ul и некоторые li).

Я использую событие iron-form "iron-form-response", но не знаю, как получить ответ.

Я вижу ответ на вкладке сети инструментов разработчика браузера, но не знаю, как получить его в своем элементе.

Я не могу найти, как это сделать, в iron-form документации онлайн.

Может кто-то мне помочь, пожалуйста ?

06.07.2015

  • Пожалуйста, опубликуйте свой код, и мы сможем лучше помочь вам. Демо для этого элемента, к которому вы можете перейти в папке bower_components, показывает настройку списка событий для iron-form-submit. Поскольку он указан в документах, я думаю, вы также можете настроить список для iron-form-response. 07.07.2015
  • В соответствии с документом я использую слушателей и событие «железная форма-ответ» с функцией обратного вызова. Чего я не знаю, так это того, как получить ответ в функции обратного вызова. Я поставлю свой код как можно скорее. Спасибо. 07.07.2015
  • На самом деле я хочу вернуть из действия формы часть html ( ul и немного li ) и вставить этот результат в тег div на моей главной странице, используя железную форму, поэтому AJAX. Я открываю для себя полимерные элементы и кое-что тестирую. Я согласен, что то, что я делаю, возможно, не очень хорошо! Используя инструменты разработчика браузера, я вижу, что event.detail пуст. Поэтому я пытаюсь вернуть строку JSON. Здесь event.detail возвращает то, что я хочу. Итак, я полагаю, что именно так работает Polymer, по крайней мере, элемент в форме железа, работающий с JSON. 07.07.2015
  • Чтобы импортировать html, вам нужно использовать вспомогательную функцию Polymer importHref. 07.07.2015

Ответы:


1

Что происходит, ребята? Все эти ответы сбивают с толку ОП, когда это так просто:

Ваша форма:

<form is="iron-form" on-iron-form-response="responseHandler" action="http://localhost" id="myform">
   <!-- Your form elements -->
</form>

Ваш сценарий:

<script>
   Polymer({
       // Some scripts here.

       // ...now your listener
       responseHandler: function(e) {
          console.log(e.detail.response);
       },                          
   });
</script>

Это просто так. Ничего сложного. Не усложняйте вещи.

19.04.2016
  • почему этого нет в документации? 19.05.2016
  • Многое происходит с разработкой Polymer, и многое время от времени меняется. К сожалению, документация не успевала за всеми изменениями. 07.06.2016
  • Я думаю, что лучше всего подтвердить, что это общедоступный API с командой. В будущем он может быть удален, поэтому его нет в документации. Однако, если нет .... это отличная находка для вас! Очень круто. 07.06.2016
  • Для меня этот вывод в консоли: listener method responseHandler` не определен`, есть идеи, как решить? 10.06.2016

  • 2

    Добавьте слушателей событий в железную форму.

    ready: function(){
          this.$.myform.addEventListener('iron-form-response',this.formResponse);
          this.$.myform.addEventListener('iron-form-error',this.formError);
    }
    

    Функция ответа формы:

    formResponse: function (e){
                        console.log("Server Response: ",e.detail);
    }
    

    Функция ошибки формы:

    formError: function (e){
                        console.log("Form Error: ",e.detail);
    }
    
    10.07.2015
  • @Talon Для меня e.detail отображает только HTMLElement. Кажется, очень мало информации о том, куда на самом деле РАЗМЕЩАТЬ эти слушатели и функции, если только мы сами не создаем элементы. 20.11.2015
  • Если вы хотите получить доступ к любому возвращаемому содержимому, используйте event.detail.response. Обязательно (на странице PHP) оберните свой ответ в json_encode(), хотя 27.02.2016

  • 3

    Я собираюсь основываться на правильном ответе Талона.

    e.detail будет объектом JSON, при условии, что ответ, отправленный с сервера, имеет форму JSON. Итак, если вы используете Node.JS и Express, вы можете получить такой код:

    document.getElementById('my-form').addEventListener('iron-form-response', function (e) {
        console.log('Form :', e.detail);
    });
    

    И код вашего сервера может выглядеть так:

    res.status(200).json({'foo': 'bar'});
    

    После чего e.detail будет объектом {"foo": "bar"}

    29.09.2015
  • Я сделал, как вы рекомендуете для обработки ошибок, но все равно получаю error: Error: The request failed with status code: 500 at iron-request.<anonymous> (http://localhost:3000/bower_components/iron-ajax/iron-request.html:231:32) message: "The request failed with status code: 500" вместо моего пользовательского json 24.12.2015

  • 4

    Небольшое обновление. Я отправляю json с ответом: res.contentType('json'); es.status(500).send({"foo":"bar"}); Если я использую 500 (ошибка), я могу получить данные json только console.log(e.detail.request.xhr.response); В случае кода 200 это достигается: console.log(e.detail.response); Я не понимаю, почему это так, но это единственный способ для меня((

    24.12.2015
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..