[英]How to trigger a iron-ajax request on a paper-button click?
我想<iron-ajax>
到POST
從動態數據<textarea>
到http://example.net
當我點擊一個<paper-button>
元素:
function get_data() { return {content:document.getElementById("mycontent").html()} }
<html> <head> <!-- Imports--> </head> <body> <iron-ajax url="//example.net" ></iron-ajax> <paper-button id="mybutton"></paper-button> <textarea id="mycontent"></textarea> </body> </html>
如何組合iron-ajax和paper-button元素將數據發送到服務器?
您需要將聚合物元素包裹在將注冊為聚合物元素的標簽中。 你可以在你的情況下使用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>
在腳本中,您需要在iron-ajax
元素上調用generateReqeust
。
(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);
GET
工作人員: http ://plnkr.co/edit/13QJ7QFETIBg4bEiCMS7?p =preview
最簡單和最便宜的方法是只查詢iron ajax元素並調用方法generateRequest()
把它放在你on-tap
處理器上,用於紙質按鈕......
Polymer.dom(this.root).querySelector('iron-ajax').generateRequest()
如果你熱衷於不使用<template is="dom-bind">
(它會使它變得更容易),你可以使用普通的vanilla路徑(即沒有dom-bind)。
<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>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.