Ist es möglich, Mixins über Web-Komponenten (und Importe) in Polymer zu teilen?

9

Als Folge zu So erweitern Sie mehrere Elemente mit Polymer und Polymer multiple inheritence / composition , basierend auf ihren Antworten frage ich mich, ob es möglich ist, zu teilen Mixins über mehrere Web-Komponenten (und mehrere Importe), um die Funktionalität wiederzuverwenden.

Mixins scheinen die einzige Möglichkeit zu sein, Funktionalität über mehrere benutzerdefinierte Elemente hinweg zu teilen. Es sieht jedoch so aus, als ob Sie nur einen Mix innerhalb eines Imports verwenden können. Das heißt, wenn Sie einen Mix-In haben, der einer Web-Komponente eine bestimmte Funktionalität gibt (sagen wir draggable ), ist es nicht möglich, sie in die Konstruktion Ihres Polymer-Elements zu mischen, wenn es nicht im selben Import ist.

Vielleicht habe ich da etwas falsch gemacht, aber wenn nicht, ist es auch so, dass die Verwendung von Mixins nicht sehr flexibel ist, weil ich immer noch nicht in der Lage bin, Funktionalität über Web-Komponenten zu teilen.

UPDATE:

Wie Scott Miles in seinen Kommentaren darauf hingewiesen hat, ist es möglich, Mixins in mehr als einem Import zu verwenden. Ich war mir einfach nicht sicher, wie ich das machen soll und es stellt sich heraus, dass es sehr einfach ist.

Nehmen wir an, wir haben ein Mixin, das über mehrere Komponenten verteilt werden sollte, aber Komponenten werden über viele Importe verteilt. Alles, was zu tun ist, ist, das Mixin in seinem eigenen Import auf das Objekt window zu definieren. Also zum Beispiel:

shared.html

%Vor%

Und dann, das Mischen in einer anderen Komponente in einem anderen Import wiederverwenden, ist so einfach wie das Importieren von shared.html .

my-component.html

%Vor%

Ab diesem Zeitpunkt steht sharedMixin als globales Objekt innerhalb dieses Imports zur Verfügung:

%Vor%

Ich hoffe, das hilft anderen. Ich schreibe darüber einen Blogbeitrag und verlinke ihn hier.

UPDATE 2

Ich habe hier einen Blogpost geschrieben: Ссылка

    
PascalPrecht 12.06.2014, 09:13
quelle

2 Antworten

1

Die Verwendung einer global-ähnlichen Komponente ist die empfohlene Vorgehensweise.
mach ein <name-you-like> und benutze get / set, um es zu ändern (du kannst auch Attribute verwenden, obwohl sie nur traurige Strings sind).

Polymer-API-Leitfaden Sie werden sehen, funktioniert (gut aussehende) Beispiele wie das:

%Vor%

Und spielen Sie mit ihnen mit Javascript es5 Getter / Setter wie im oben genannten Fall würde aussehen wie

%Vor%

Ich komme wieder.

    
Caio Wilson 30.11.2014 13:07
quelle
1

Dies wird nun von der Funktion Verhalten behoben.

Beispiel:

mein-Verhalten.html:

%Vor%

my-element.html:

%Vor%

mein-anderes-element.html:

%Vor%     
Zikes 01.06.2015 20:31
quelle

Tags und Links