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.
For more options, visit https://groups.google.com/d/optout.

Reply via email to