Jak wywołać żądanie iron-ajax po kliknięciu przycisku papieru?


Chcę
& < iron-ajax & >
-
POST
dynamicznych danych z
& < textarea & >
do
[url=http://example.net]http://example.net[/url]
po kliknięciu elementu
& < paper-button & >
:
<div class="snippet-code">
<div class="snippet" data-hide="false" data-lang="js">
<pre class="snippet-code-js lang-js prettyprint-override">
function get_data() {
return {content:document.getElementById("mycontent").html()}
}

<pre class="snippet-code-html lang-html prettyprint-override">
<html>
<head>
<!-- Imports-->
</head>
<body>
<iron-ajax
url="//example.net"
></iron-ajax>
<paper-button id="mybutton"></paper-button>
<textarea id="mycontent"></textarea>
</body>
</html>

Jak mogę łączyć elementy

iron-ajax
https://elements.polymer-proje ... -ajax
i

paper-button
https://elements.polymer-proje ... utton
wysyłać dane na serwer?
Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Musisz owinąć elementy polimerowe w znacznik, który zostanie zarejestrowany jako element polimerowy. W twoim przypadku możesz użyć
dom-bind
.
<template id="t" is="dom-bind"> 
<textarea value="{{dataToPost::input}}"></textarea>
<paper-button on-tap="postData">Post Data</paper-button>
<iron-ajax
id="dataAjax"
method="post"
url="data/url"
on-response="postComplete"></iron-ajax>
</template>

W skrypcie musisz wywołać element
generatedReqeust
na
iron-ajax
.
(function (document) {
'use strict';
document.addEventListener('WebComponentsReady', function() {// We have to bind the template with the model
var t = document.querySelector('#t');
var ajaxRequest = t.$.dataAjax;// make the iron-ajax call
t.postData = function() {
ajaxRequest.body = {
'text': t.dataToPost;
}
ajaxRequest.generateRequest();
}//callback on request complete
t.postComplete = function(){
alert('whoa! request complete');
}
});
})(document);

Tłok roboczy dla
GET
:

http://plnkr.co/edit/13QJ7QFET ... eview
http://plnkr.co/edit/13QJ7QFET ... eview
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Najłatwiejszym i najtańszym sposobem jest po prostu zażądanie elementu Ajax iron i wywołanie metody
GenerateRequest ()
Umieść to w module obsługi
on-tap
przycisku papieru ...
Polymer.dom(this.root).querySelector('iron-ajax').generateRequest()
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Jeśli jesteś zainteresowany nie używając
& LT; Szablon IS = "Dom-bind" & GT;
(choć byłoby znacznie łatwiejsze), możesz przejść na prostą trasę wanilii (to jest, bez wiązanie DOM).
<div class="snippet-code">
<div class="snippet" data-hide="false" data-lang="js">
<pre class="snippet-code-html lang-html prettyprint-override">
<html><head>
<!-- Imports-->
</head><body>
<iron-ajax url="//example.net"></iron-ajax>
<paper-button id="mybutton"></paper-button>
<textarea id="mycontent"></textarea>
<script>
window.addEventListener('WebComponentsReady', function() {
var ironAjax = document.querySelector('iron-ajax');
ironAjax.method = 'post';
ironAjax.contentType = 'text/plain';// you're just sending text
var myButton = document.getElementById('mybutton');
var myContent = document.getElementById('mycontent'); myButton.addEventListener('tap', function(e) {
var valueToSend = myContent.value;
ironAjax.body = valueToSend;
ironAjax.generateRequest();
});
});
</script>
</body></html>

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się