2017-02-17 3 views
0

Ich versuche zählen 2 Element auf HTML-Datei wie folgt aussieht:Wählen Eisen-Ajax-Element auf dem Körper

<html> 
    <body> 
    <iron-ajax id="requestContent"></iron-ajax> 
    <my-custom-element></my-custom-element> 
    </body> 
</html> 

Bei my-custom-element es einen Link-Tag mit on-click Eigenschaft habe, ich iron-ajax Element von id auswählen möchte, wenn ich klicken ein Link auf my-custom-element. Wie kann ich das machen?

<dom-module id="my-custom-element"> 
    <template> 
    <a href$="/target-page" on-click="_aFunction">click me</a> 
    </template> 
    <script> 
    Polymenr({ 
     is: 'my-custom-element', 
     _aFunction: function(){ 
      console.log(this.parentNode); // output element body 
      console.log(this.parentNode.$); // undefined 
      // console.log(this.parentNode.$.requestContent); 
     } 
    }); 
    </script> 
</dom-module> 
+0

Dies ist wahrscheinlich keine gute Idee. Dies liegt daran, dass 'mein-benutzerdefiniertes-Element' einen Elternteil haben muss, der' Eisen-Ajax' als Kind hat. Eigentlich sollten Sie ein Ereignis an das übergeordnete Element auslösen, das dann entscheiden kann, welche Prozesse ausgeführt werden sollen. Sehen Sie sich die Vorlage [dom-bind] (https://www.polymer-project.org/1.0/docs/api/dom-bind) an und [benutzerdefinierte Ereignisse auslösen] (https: //www.polymer-project .org/1.0/docs/devguide/events # custom-events) –

+0

@BenThomas fyi, wenn ich 'Eisen-Ajax' und' mein-benutzerdefiniertes-Element' an ein anderes benutzerdefiniertes Element anlege, funktioniert es. Aber ich möchte nach außen Element, das innerhalb Body-Tag ist – itx

Antwort

0

Das Kind löst ein benutzerdefiniertes Ereignis mit der ID ausgewählt werden, die Eltern löst eine Funktion, die die ID auswählt.

Eltern

<iron-ajax id="requestContent" on-select-ajax="handleSelection"></iron-ajax> 

      handleSelection: function(e) { 
      // do what you have to do with e.name 
      // you can pass the data anywhere 
      } 

Kind

<dom-module id="my-custom-element"> 
    <template> 
    <a href$="/target-page" on-tap="_aFunction">click me</a> 
    </template> 
    <script> 
    Polymenr({ 
     is: 'my-custom-element', 
     _aFunction: function(e, detail) { 
     this.fire('select-ajax', {name: requestContent}); 
     } 
    }); 
    </script> 
</dom-module> 

ps: Ich änderte auf Klick auf Tippen Klicks und Touch auf Ihren Link zu ermöglichen.

Verwandte Themen