2016-04-06 10 views
2
document.getElementById('test').addEventListener('options-changed', function() { 
     document.getElementById('getContent').generateRequest(); 
    }); 

Das obige Beispiel funktioniert einwandfrei. Aber sobald ich versuche, generateRequest(); in einem benutzerdefinierten Element zu verwenden, passiert nichts. Keine Fehler.Trigger-Polymer Eisen-AJAX-Anforderung manuell

Polymer({ 
     is: 'vplan-table', 

     properties: { 
      options: { 
       reflectToAttribute: true, 
       notify: true, 
       observer: '_optionsChanged' 
      } 
     }, 
     _optionsChanged: function() { 
      //generateRequest not working! 
      document.querySelector('#getContent').generateRequest(); 
      console.log('options changed'); 
     } 
    }); 

Danke für Ihre Zeit!

+1

Haben Sie versucht, 'this. $. GetContent.generateRequest()' anstelle von 'document.querySelector ('# getContent') zu verwenden. GenerateRequest()'? – Alan

+0

Das funktioniert gut. Danke vielmals! Aber meiner arbeitet auch. Ich habe einfach vergessen, den alten Ajax-Code von der Hauptseite zu löschen. Die Anfrage hat funktioniert, aber die Daten nicht. Das war mein eigener dummer Fehler. –

+1

Ich würde Ihnen empfehlen, den Code, den ich erwähnt habe, zu verwenden, wenn Sie 'querySelector' direkt auf' document' in einem Code eines Polymer-Elements verwenden, funktioniert es möglicherweise nicht wie erwartet, wenn Sie mehrere Instanzen desselben Elements gleichzeitig verwenden – Alan

Antwort

1

Alans Lösung funktioniert! Verwenden Sie this.$.getContent.generateRequest() anstelle von document.querySelector('#getContent').generateRequest(). Vielen Dank Alan!