Ich arbeite an einer App, die die benutzerdefinierte Element-API verwendet (mit webcomponents.js als Polyfill). Innerhalb meines Elements möchte ich alles in eine Schattenwurzel einkapseln. Die HTML-Vorlage des Polymerelements scheint korrekt importiert zu werden, jedoch Styling fehlt - anders als wenn ich das Element nach draußen, wo Styling scheint zu funktionieren:Polymer-Element im Schatten funktioniert, aber ist nicht gestylt
class TestWC extends HTMLElement {
createdCallback() {
console.log('created');
var ShadowRoot = this.createShadowRoot();
ShadowRoot.innerHTML = '<paper-input label="Inside shadow root"></paper-input>';
}
}
var MyTestWC = document.registerElement('test-test', TestWC);
var MyTestWCInst = new MyTestWC();
document.querySelector('#placeholder').appendChild(MyTestWCInst);
<script src="https://cdnjs.cloudflare.com/ajax/libs/webcomponentsjs/0.7.22/webcomponents.js"></script>
<paper-input label="Outside shadow root"></paper-input>
<p id="placeholder"></p>
<link rel="import" href="https://polygit.org/components/paper-input/paper-input.html" />
Frage: Warum funktioniert das ursprüngliche Styling von Polymer-Web-Komponenten nicht innerhalb der Schattenwurzel?
Edit: hier ist ein Plunker; funktioniert in Chrom nur FTM. http://plnkr.co/edit/rEibVckeUAqqrZljuVEy?p=preview
PS: Was wäre die bevorzugte Plunkr-ähnliche Plattform zur Visualisierung von Polymerproblemen? Plunkr scheint nicht die Polymerkomponenten zu haben, die ich verwende, oder zumindest habe ich es nicht gefunden? – Alfi
Mein bevorzugter Dienst ist [Codepen] (http://codepen.io/tony19/pen/pbPBZB), wenn Datei-Assets nicht benötigt werden. Andernfalls [Plunker] (http://pnnr.co/edit/y9UlCBgDzStBADeLBdyQ?p=preview). – tony19
Okay, ein CDN für die Papiereingabe gefunden. Einen Plünderer hinzugefügt. – Alfi