ich ein benutzerdefiniertes ElementgetContentChildren Äquivalent in Polymer 2
<!-- element template -->
<dom-module id="custom-element">
<template>
<style></style>
<div class="toggle">
<slot id="toggleContent" name="toggle"></slot>
</div>
</template>
<script>...</script>
</dom-module>
<!--usage-->
<custom-element>
<div slot="toggle">I'm the toggle</div>
</custom-element>
In Polymer 1.0 konnte ich das verteilte Kindknoten erhalten, indem
[this.getContentChildren('#toggleContent')\[0\];][1]
mit der <div toggle>I'm the toggle</div>
jedoch zurückkehren würde in Polymer 2. getContentChildren
wird nicht mehr unterstützt und macht es so
this.$.toggleContent.assignedNodes({flatten: true}).filter(function(n) {
return (n.nodeType === Node.ELEMENT_NODE);
});
gibt mir nicht das erwartete Element zurück, <div slot="toggle">I'm the toggle</div>
.
Wie bekomme ich das äquivalente Ergebnis unter Verwendung assignedNodes()
in Polymer 2?
Bitte beachten Sie folgende plunker Danke.
hmm, nein, das ist nicht das Problem. Würde es Ihnen etwas ausmachen, den folgenden Plunker zu betrachten? http://plnkr.co/edit/Nq7lvk?p=preview – user3240644
Da 'this._toggleEl' ein Array ist, warum benutzt du nicht 'var equal = elementClicked === this.toggleEl [0]' wie du es getan hast "Polymer 1"? – Ofisora
Oh ja! Sie haben Recht! Danke, dass du es aufgezeigt hast. Als ich mir den Konsolendruck anschaute, sah es so aus, als ob es ein Objekt und kein Array zurückgab und deshalb habe ich nie darüber nachgedacht. PEBAK. Würde es Ihnen etwas ausmachen, Ihre Antwort zu bearbeiten, und ich nehme sie gerne an? Vielen Dank! – user3240644