Beispiel einer Komponente¶
Eine Webkomponente ist im wesentlichen eine über Javascript nachgeladenes Dokument, dass alle notwendigen Elemente wie Javascripts, Templates und CSS-Dateien enthält.
Erstellen einer Komponente¶
Eine einfache Web-Komponente besteht aus einem gültigem Javascript-Dokument. Das folgende Beispiel zeigt ein Webkomponente ohne Funktion und Inhalt.
try {
(function() {
var globalContext = Function('return this')()||(42, eval)('this');
// Hier Code einfügen
return globalContext;
})();
} catch(e) {
// Fehlerdialog anzeigen
try {
Alvine.Package.Console.Host.showNothingWorksAnymoreDialog("%%FILENAME%%", e);
} catch(nothing) {
}
// Event senden
try {
if(typeof jQuery!=='undefined') {
jQuery(window).trigger('exception.ALVINE', e);
}
} catch(nothing) {
}
// Ausgabe in der Konsole
try {
Alvine.Util.Logger.logError("%%FILENAME%%", e);
} catch(nothing) {
console.error(e);
}
}
Um diese Komponente mit Leben zu füllen, müssen Javascript-Elemente hinzugefügt werden. Eine Beispieldatei für eine Alvine Webkomponente ist über Github abrufbar github.com/Alvine-IO/console/blob/master/templates/webcomponent.html
Die Webkomponente wird über die Modulfunktion des Console-Hosts in das Hauptdokument eingebunden. Die einzubindenden Komponenten werden dem Host über die zentrale Konfigurationsdatei mitgeteilt.
Konfiguration¶
Die Komponente kann über die zentrale Konfiguration eingerichtet und mit einem
Navigationshandel verbunden werden. Dazu muss unter components > component
ein
Eintrag hinzugefügt werden:
"components": {
"component": [
{
"module": {
"prototype": "Alvine.Package.UI.Content.Iframe",
"location": "//cdn.alvine.io/console/latest/alvine/package/ui/content/iframe.min.html"
},
"handler": "example",
"keybinding": "e",
"navigation": {
"label": "i18n:example",
"mountpoint": "main.menu.favourites"
}
}
]
}
In der folgenden Tabelle sind die Eigenschaften, die in der Konfigurationsdatei zu definierne sind aufgeführt.
Schlüssel | Pflicht | Beschreibung | Beispiel |
---|---|---|---|
module.prototype | x | Name des Modules; Name des Javascript-Objekte-Konstruktors | Alvine.Package.UI.Content.Iframe |
module.location | x | URL der zu ladenden Komponente | |
handler | x | Entweder Hash, absolute oder relative URL | |
keybinding | Tastaturbefehl zum aufruf des Handels | g | |
navigation.label | Name des Navigationseintrages | i18n:example | |
navigation.mountpoint | Pfad der auf einen Punkt in der Registry zeigt und an dem der Navigationspunkt eingehängt wird | main.menu.favourites | |
arguments | Konfiguration der Komponente |
Zusätzlich zu diesen Eigenschaften kann eine Komponente weitere Eigenschaften besitzen