2016-05-05 3 views
1

Ich sehe jemand seltsame benutzerdefinierte Tags implementiert.mein Stil-Tag in meiner Polymer-Web-Komponente hat ein Include, wo sind die Dokumente?

ohne Dart-Datei, und dann hat eine andere Datei mit der Komponente.

<link rel="import" href="my_stylesheet.html"> 
<dom-module id="my-custom-element"> 
    <template> 
    <style include="my-style"></style> 
    <div>Hello World!</div> 
    </template> 
</dom-module> 

MIT der zugehörigen Dart-Datei, um das Tag zu registrieren.

Ist das richtig? ist das falsch? Ich fühle, dass etwas nicht stimmt.

Wenn ich auf diese Implementierung schaue, sehe ich die folgenden geordneten Operationen.

  1. Versuch my-custom-element auf einer Seite
  2. Importiert den Stil html in das dom unter einem benutzerdefinierten Tag, genannt zu laden: my-style
  3. weiterhin die Komponente zu laden.

...

jetzt ist, wo es für mich Fuzzy bekommt. include ist kein Attribut von HTML, also vermute ich, dass es Polymer ist, aber bezieht sich auf das benutzerdefinierte Stil-Tag.

...

  1. Code ist irgendwie injiziert und dieser Satz von Stilen wird auf das Bauteil aufgebracht.
  2. Element wird nicht mehr benötigt, losgelöst/getötet.
  3. benutzerdefinierte Tag ist immer noch auf der Seite, wie es außerhalb des benutzerdefinierten Elements ist.
  4. benutzerdefiniertes Element wird erstellt. Injektion eines anderen my-style Tags.
  5. 2 Tags mit dem gleichen Namen auf doc.

Ich weiß nicht. Vielleicht siehst du das Problem, das ich sehe. Das ist nur komisch für mich. Kann dies erklärt werden, was beinhaltet ist und was hier vor sich geht? Ich denke, es muss verbessert werden.

Gibt es ein Bereinigungsproblem mit diesen Modulen, die dann nicht entfernt werden, usw.?

Danke

habe gerade bemerkt: Die index.html eine Polymerkomponente lite js Datei hat, so dass sein könnte, warum kein Register des Stils Modul gibt es, aber jetzt neugierig im, wenn, da wir auch schlecht mischen sich Implementierungssprachen?

Antwort

0

Dies ist eine absolut gültige und bewährte Methode zur Thematik.

See Stil Module https://www.polymer-project.org/1.0/docs/devguide/styling.html#style-modules

+0

Ja, ich war dort suchen. Ich habe einfach nicht verstanden, warum die Link-Tags an Ort und Stelle sind. Ich schätze, mein Problem der Logik ins Spiel kommt, wo Elemente mehrmals aufgerufen werden, oder Bereinigung auftritt. Dann wird das Link-Tag einige Male injiziert, und umgekehrt, wenn das Element entfernt wird zerstört, aber stattdessen entfernt, wenn der Elternteil zerstört wird, nicht? – Fallenreaper

+0

Ich habe das nicht genau untersucht, aber ich nehme an, dass es viel Komplexität im Zusammenhang mit Shimming und Polyfilling von Schatten-DOM- und CSS-Variablen gibt. –