Polímero - Hierro Ajax

El elemento <iron-ajax> es útil para realizar llamadas ajax.

<iron-ajax
   auto url = "https://www.googleapis.com/youtube/v3/search"
   params = '{"part":"snippet", "q":"polymer", "key": "YOUTUBE_API_KEY", "type": "video"}'
   handle-as = "json"
   on-response = "handleResponse"
   debounce-duration = "500">
</iron-ajax>

Cuando estableces auto a verdadero, un elemento hace una solicitud cuando sus propiedades url, paramso bodyestán cambiados. Como puede ver, el componente tiene varios atributos disponibles:

  • url - Un atributo donde coloca la URL al punto final de la API.

  • params - Un atributo donde puede pasar el JSON con los parámetros de la solicitud.

  • handle-as: Especifica qué datos se deben almacenar en la propiedad de respuesta. De forma predeterminada, los datos se almacenan en formato json.

  • on-response - Un atributo que puede decirle al componente iron-ajax por qué método se maneja la respuesta.

El cambio de varios atributos de forma secuencial hace que las solicitudes generadas automáticamente se eliminen.

Puedes llamar generateRequest en el elemento para activar una solicitud de forma explícita.

Ejemplo

En el siguiente ejemplo, tenemos un enlace al iron-ajax y paper-input componentes utilizados de la CDN.

<!DOCTYPE html>
<html>
   <head>
      <title>iron-ajax</title>
      <link rel = "import"
         href = "https://cdn.rawgit.com/download/polymer-cdn/1.0.1/lib/paper-input/paper-input.html">
      <link rel = "import"
         href = "https://cdn.rawgit.com/download/polymer-cdn/1.0.1/lib/iron-ajax/iron-ajax.html">
   </head>
	  
   <body>
      <dom-module id = "data-bind">

         <template>
            <paper-input label = "Write something..." id = "input" value = "{{q::input}}"
               autofocus>
            </paper-input>
            <p>You typed: <b>{{q}}</b></p>
            <p>Echo: <b>{{echo}}</b></p>
           
            <iron-ajax auto
               url = "http://dict.leo.org/dictQuery/m-query/conf/ende/query.conf/strlist.json"
               params = "{'q': q}" handle-as = "json" on-response = "_handleResponse"
               debounce-duration = "500">
            </iron-ajax>
         </template>
       
         <script>
            (function () {
               Polymer ({
                  is: 'data-bind', properties: {
                     echo: {
                        type: String, value: 'waiting ...', reflectToAttribute: true
                     }
                  },
                  _handleResponse: function(event, request) {
                     var response = request.response;
                     this.echo = JSON.stringify(response);
                  }
               });
            })();
         </script>
      </dom-module>
    
      <data-bind></data-bind>
   </body>
</html>

Salida

Para ejecutar la aplicación, navegue hasta el directorio de su proyecto y ejecute el siguiente comando:

polymer serve

Ahora abra el navegador y navegue hasta http://127.0.0.1:8081/. Lo siguiente será la salida.