2016-06-23 4 views
0

Ich entwickle eine Google Polymer Web-Anwendung. Es muss JSON-Dateien von einem Webserver laden. Ich verwende Eisen-Ajax, wie in der Polymer-Dokumentation empfohlen.Mit Iron-Ajax von Google Polymer, wie man eine JSON-Datei von jedem Webserver laden

Ich kopierte den Beispielcode aus der Demo in mein Projekt und testete es viele Male, aber alle Tests fehlgeschlagen. Bitte zeigen Sie mir, was in meinem Code falsch ist.

Vorlage

...... 

    <iron-ajax 
    on-response="ontap" 
    auto 
    url="test.json" 
    // for one test, I put test.json in the same folder as this Polymer html 
    // for other tests, I put test.json on some web servers, using correct URLs 
    //for example: http://www.test.com/test.json 
    handle-as="json" 
    last-response="{{ajaxR}}" 
    debounce-duration="300"> </iron-ajax> 
    ....... 

Polymer Funktion

ontap:function(ev){ 
    alert(ev.detail);//it says "object HTMLElement" 
    alert(this.ajaxR);//it says null 
    } 
    ....... 

test.json

[{song:"song1"}] 

Antwort

0

ajaxR wird eine Eigenschaft auf Ihrem Element. Um darauf zuzugreifen, können Sie this.ajaxR verwenden.

ontap: function() { 
    alert(this.ajaxR); 
    alert(this.ajaxR[0].song); 
} 
+0

Es tut mir sehr leid. Es ist meine Fehlerschreibung. Ich werde es bald korrigieren. – yuzu

+0

Ich habe das Event-Objekt für die On-Response des Iron-Jax erhalten. Bitte könntest du mir geben, wie man Felder von ev.detail bekommt, wobei ev die Ereignisvariable ist. Und ev.detail sagt, es ist ein Objekt und HTMLElement. – yuzu

+0

Das 'ev' ist das Ereignis, das ausgelöst wird, wenn Sie auf die Schaltfläche klicken, die ein HTML-Element sein wird. 'this.ajaxR' wird die Antwort des Ajax-Aufrufs sein. Überprüfen Sie, ob die URL zum JSON korrekt ist. –