2017-12-28 19 views
1

Ich verwende Polymer 2 und möchte Daten aus einer lokalen JSON-Datei binden. Aber jedes Mal, wenn ich es versuchte, ist es nicht möglich, nur die JSON-Datei zu holen.Nicht in der Lage, Daten von lokalen JSON an Polymer 2 zu binden

Es gibt zwei Möglichkeiten, wie ich versucht haben, es zu erreichen mit:

1) weiter verwenden

<iron-ajax url="data/employees.json" handle-as="json" last-response="{{items}}" auto> 
</iron-ajax> 

Ordnerstruktur:

folder Structure

<iron-list items="{{items}}" as="item"> 
    <template> 
     <div class="item"> 
      <b>[[item.nickname]]</b> 
      <p>[[item.phone]]</p> 
     </div> 
    </template> 
</iron-list> 

ich auch beide importiert haben Eisen-Ajax und Eisen-Liste

2) VERWENDEN Sie $.get, um Daten von json in start zu extrahieren, und fügen Sie sie in eine Variable ein, um sie zum Anzeigen zu binden.

<script> 
    class IronListClass extends Polymer.Element { 
     static get is() {return 'iron-comp'} 

     ready() { 
      super.ready(); 
      var that = this; 
      // $.get('data/employees.json', function(data) { 
      //  that.employees = $.parseJSON(data).results; 
      //  console.log(that.employees); 
      // }); 
      $.get('data/employees.json', function(data) { 
      this.employees = $.parseJSON(data).results; 
      console.log(this.employees); 
      }.bind(this)); 
     }   
    } 
    window.customElements.define(IronListClass.is, IronListClass); 
</script> 

versucht mit dem = dies auch.

Antwort

0

Sie können die JSON-Datei wie folgt laden, da sie bereits in meiner App funktioniert.

<iron-ajax 
      auto 
      url$="{{url}}" 
      handle-as="json" 
      last-response="{{loadedItems}}" 
      > 
    </iron-ajax> 

...

 static get properties() { return { 
     url :{ 
      type:String, 
      value() {return "./data/employees.json"; } 
     } 

...

static get observers() { return ['checkJsonFileLoaded(loadedItems)']} 

    checkJsonFileLoaded(j) { 
     if (j) { 
      this.set('items', j); 
      console.log(items); //u should see the loaded json file. If so than the problem is iron-list (to publish the result) 
     } 
    } 
+0

Zunächst vielen Dank für Ihre Hilfe Immer noch nicht arbeiten, können Sie mir helfen herauszufinden, bitte statisch get properties() {re drehen { url: {type: String, value() {return "./data/employees.json"}} } } statische get Beobachter() { return [ 'checkJsonFileLoaded (items)']} checkJsonFileLoaded (j) { if (j) {this.set ('items', j); console.log (Elemente); } } Gibt 404 –

+0

Nähte Sie haben keine JSON-Datei am angegebenen Pfad. Überprüfen Sie nach Pfad oder Datei – HakanC

+0

Ich habe die Ordnerstruktur Bild oben im Hauptproblem zur Verfügung gestellt. Können Sie bitte einen alternativen Pfad angeben oder sehen, ob ich einen Fehler gemacht habe. Auch in VSCode, wenn ich ./data eingeben employee employee.json automatisch. Was könnte das Problem sein? –

Verwandte Themen