Let's keep the conversation on SO: http://stackoverflow.com/questions/26272030/pass-polymer-form-data-to-rest-api
On Thu, Oct 9, 2014 at 2:58 AM, <[email protected]> wrote: > I'm looking for some way to pass data from a Polymer form fields to REST > API, > actually, I'm using core-ajax to do it but I think is a bit heavy method > to do it. > > Are any standard way to do it? > > This is my code: > > <template> > <section> > <file-input class="blue" id="file" extensions='[ "xls" ]' maxFiles > ="1">{{ FileInputLabel }}</file-input> > </section> > <section> > <paper-button raised class="blue" disabled?="{{ (! Validated) || > (Submitted) }}" on-tap="{{ Submit }}"> > <core-icon icon="send"></core-icon> > Process > </paper-button> > </section> > > <paper-toast id="toast" text=""></paper-toast> > > > <core-ajax id="ajax" url="/import-pdi" method="POST" handleAs="json" > response="{{ response }}" on-core-complete="{{ SubmitFinished }}" > ></core-ajax> > </template> > > > <script> > Polymer("import-pdi-form", { > > Validated: false, > Submitted: false, > > FileInputLabel: "SELECT", > ready: function () { > this.shadowRoot.querySelector("#file"). > addEventListener("change", function(event) { > var container = document.querySelector( > "import-pdi-form"); > container.Validated = (event.detail.valid.length > != 0); > if (event.detail.valid.length == 0) { > container.shadowRoot.querySelector("#toast").text > = "Invalid Format"; > container.shadowRoot.querySelector("#toast"). > show(); > container.FileInputLabel = "SELECCIONA > L'ARXIU"; > } > else { > container.FileInputLabel = event.detail.valid[ > 0].name; > var form_data = new FormData(); > form_data.append("file", event.detail.valid[0 > ], event.detail.valid[0].name); > container.shadowRoot.querySelector("#ajax").body > = form_data; > > container.shadowRoot.querySelector("#ajax").contentType > = null; > } > }); > }, > Submit: function() { > if ((this.Validated) && (! this.Submitted)) { > this.Submitted = true; > this.shadowRoot.querySelector("#ajax").go(); > } > }, > SubmitFinished: function(event, detail, sender) { > if (detail.xhr.status == 200) { > this.shadowRoot.querySelector("#toast").text = > JSON.parse(detail.xhr.response).message; > } > else { > this.shadowRoot.querySelector("#toast").text = "Server > Error"; > } > this.shadowRoot.querySelector("#toast").show(); > this.FileInputLabel = "SELECCIONA L'ARXIU"; > this.shadowRoot.querySelector("#file").reset(); > this.Submitted = false; > } > }); > </script> > > Follow Polymer on Google+: plus.google.com/107187849809354688692 > --- > You received this message because you are subscribed to the Google Groups > "Polymer" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/polymer-dev/1b85fd53-be7f-4159-82dd-27bddc69d865%40googlegroups.com > <https://groups.google.com/d/msgid/polymer-dev/1b85fd53-be7f-4159-82dd-27bddc69d865%40googlegroups.com?utm_medium=email&utm_source=footer> > . > For more options, visit https://groups.google.com/d/optout. > Follow Polymer on Google+: plus.google.com/107187849809354688692 --- You received this message because you are subscribed to the Google Groups "Polymer" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/polymer-dev/CACGqRCCffoQMAwYh2NDOd7nhLNDoFV98RoopKtqcqe%2BegUNwxA%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
