Polímero - Ferro Ajax
O elemento <iron-ajax> é útil para fazer chamadas 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>
Quando você define auto para verdadeiro, uma solicitação é feita por um elemento quando suas propriedades url, params, ou bodysão alterados. Como você pode ver, o componente tem vários atributos disponíveis -
url - Um atributo onde você coloca o url para o endpoint da API.
params - Um atributo onde você pode passar o JSON com os parâmetros de solicitação.
handle-as- Especifica quais dados devem ser armazenados na propriedade de resposta. Por padrão, os dados são armazenados no formato json.
on-response - Um atributo que pode dizer ao componente iron-ajax por qual método a resposta é tratada.
Alterar vários atributos sequencialmente faz com que as solicitações geradas automaticamente sejam depuradas.
Você pode ligar generateRequest no elemento para acionar uma solicitação explicitamente.
Exemplo
No exemplo a seguir, temos um link para o iron-ajax e paper-input componentes usados do 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>
Resultado
Para executar o aplicativo, navegue até o diretório do projeto e execute o seguinte comando -
polymer serve
Agora abra o navegador e navegue até http://127.0.0.1:8081/. A seguir será a saída.