/ / Polymer 1.x: Usando o ferro-ajax dentro de um comportamento personalizado - ajax, polímero, polímero-1.0, polímero-1.x, elementos de ferro

Polímero 1.x: Usando o ferro-ajax dentro de um comportamento personalizado - ajax, polímero, polímero-1.0, polímero-1.x, elementos de ferro

Eu estou construindo um comportamento personalizado. MyBehaviors.MySpecialBehavior.

Mas eu preciso obter dados que são armazenados localmente em um arquivo JSON chamado my-data.json.

Como posso fazer isso dentro do meu comportamento? Eu estou tentando importar iron-ajax mas não consigo pensar em como acessar seus métodos ou propriedades.

my-special-behavior.html
<link rel="import" href="../../bower_components/polymer/polymer.html">
<link rel="import" href="../../bower_components/iron-ajax/iron-ajax.html">

<script>
var MyBehaviors = MyBehaviors || {};
MyBehaviors.MySpecialBehaviorImpl = {
// Methods go here that rely on data at my-data.json
};

MyBehaviors.MySpecialBehavior = [
MyBehaviors.MySpecialBehaviorImpl,
];
</script>
my-data.json
{
"important": "data",
"j": 5,
"o": "N",
"goes": "here"
}

Respostas:

3 para resposta № 1

Você pode criar elementos programaticamente. Dê uma olhada em como ferro-ajax em si faz isso para usar pedido de ferro internamente:

https://github.com/PolymerElements/iron-ajax/blob/master/iron-ajax.html#L442

Referindo-se ao seu usecase, o usuário a1626 criou este trecho:

var ajax = document.createElement("iron-ajax");
ajax.contentType = "application/json";
ajax.handleAs = "json";
ajax.url = <url goes here>
ajax.method = "get";
ajax.addEventListener("response", function (event) {
//response handler
});
ajax.generateRequest();

1 para resposta № 2

Você pode acessar os dados json com ajax.lastResponse dentro do ouvinte de evento adicionado.

var ajax = document.createElement("iron-ajax");
ajax.contentType = "application/json";
ajax.handleAs = "json";
ajax.url = <url goes here>
ajax.method = "get";
ajax.addEventListener("response", function (event) {
//response handler
console.log("ajax", ajax.lastResponse);
});
ajax.generateRequest();

Perguntas relacionadas


Comentários (0)

Adicione um comentário