2016-04-20 17 views
2

Ich möchte wissen, was ist der Unterschied zwischen benutzerdefinierten Elementen oder benutzerdefinierte Attribute in Aurelia verwenden.Aurelia: Benutzerdefinierte Elemente vs Benutzerdefinierte Attribute

Ich verwende einen Datepicker von jqueryUI. Ich habe es als ein benutzerdefiniertes Attribut (nach diesem https://www.danyow.net/jquery-ui-datepicker-with-aurelia/) implementiert und es funktioniert perfekt. Ich war nicht in der Lage, es zu einem kundenspezifischen Element zu machen. Ich schaute mich um und fand einige Beispiele online, aber sie funktionierten nicht.

Ich möchte wissen, ob es Nachteile bei der Verwendung von benutzerdefinierten Attributen anstelle von benutzerdefinierten Elementen gibt.

Antwort

6

Ein benutzerdefiniertes Attribut dient zur Erweiterung der Funktionalität eines vorhandenen HTML-Elements und hat tatsächlich keine Ansicht. Wie in Ihrem Beispiel möchten Sie die Funktionalität eines Eingabefeldes erweitern. Es sollte aussehen wie eine Eingabe, Standard-Fokus/Form/Validierung usw. Eingabe-Verhalten und so weiter (wenn <input type="date"/> würde ordnungsgemäß in allen Browser implementiert werden, würden wir sicherlich dies anstelle von jquery-datepicker verwenden).

benutzerdefinierte Elemente sind eine Möglichkeit, eigenes wiederverwendbares Element inklusive eine eigene Ansicht und eigene Funktionalität und Logik zu schreiben.

Beispiele:

benutzerdefinierte Element

  • selbst gemacht picker (müssen einige Daten zeigen und so weiter = view)
  • eigenen Autocomplete-Eingang (Sie eine Listenansicht benötigen für die Ansicht)
  • wiederkehrende UI-Elemente (z. B. ein Daten, Bildpaar, wo das Bild immer auf der linken Seite und etwas auf Klick, 5 Zeilen HTML und Logik in einem benutzerdefinierten Element gewickelt)

benutzerdefiniertes Attribut

  • eine 3rd-Party-Datumsauswahl verwenden (wie jQuery-ui, das wird nur ein jQuery Telefonieren eine Ansicht programmatisch hinzufügen)
  • Google Maps Orte zum automatischen Vervollständigung (nur ein API-Aufruf, der den Eingabewert ändert und dynamisch hinzugefügte Ansicht, keine eigene Ansicht zeigt)
  • ein Bild, das ein besonderes Verhalten haben soll (wie ein Bild, das einen Restanruf macht und das Bild ändert)
+0

Tnx für die Erklärung. Etwas abseits, beim Erstellen von benutzerdefinierten Elementen, sehe ich @bindable. Was wird es verwendet? Ich habe etwas über das Zulassen von Attributen gesehen, aber ich benutze es nicht und Dinge scheinen zu funktionieren. –

+0

Der @bindable-Decorator wird verwendet, um anzugeben, dass ein Feld im Ansichtsmodell eines benutzerdefinierten Elements als Attribut verwendet werden kann – dimlucas

Verwandte Themen