Sie können in Serviceportal Widgets verwenden, um UI-Makros zu ersetzen. Wenn Ihr Servicekatalog-Formular ein UI-Makro enthält, das auf andere Felder oder Variablen im Formular verweist, können Sie ein Widget mit wiederverwendbarem Code erstellen und es in das Servicekatalog-Formular einbetten. Verwenden Sie eine spezielle Syntax, um auf beliebige Variablenfelder im Formular zuzugreifen.
Vorbereitungen
Erforderliche Rolle: admin oder sp_admin
Prozedur
-
Erstellen Sie ein Widget, das die Aktion ausführt, die Sie in Katalogelementformularen verwenden möchten.
In Schritt 7 finden Sie ein einfaches Beispiel-Widget, das auf eine andere Variable im Formular zugreift.
-
Öffnen Sie ein Katalogelement, das zuvor ein UI-Makro oder eine andere wiederverwendbare Komponente verwendet hat, die in Serviceportal nicht unterstützt wird.
-
Fügen Sie in zugehörigen Listen dem Katalogelement eine neue Variable hinzu.
-
Konfigurieren Sie das Variablenformular so, dass das Feld Widget hinzugefügt wird.
-
Wählen Sie im Feld Typ die Option Makro aus.
-
Wählen Sie im Feld Widget ein Widget aus, das die gewünschte Aktion ausführt.
- Wahlweise:
Verwenden Sie im eingebetteten Widget die Syntax
$scope.page.g_form() oder $scope.page.field, um auf die Katalogelementwerte zuzugreifen.
Dieses Beispiel zeigt, wie Sie den Wert einer einzeiligen, mit dem Katalogelement verknüpften Textvariable mit dem Namen
color ändern.
- Widget-HTML-Vorlage
<div>
Data from catalog variable:
<h1>{{ c.data.message }}</h1>
</div>
- Widget-Clientskript
function($scope) {
var c = this;
//Watch for changes in the color variable
$scope.$watch(function () {
return $scope.page.g_form.getValue('color');
}, function (value) {
//Update local data object with data from variable
c.data.message = value ? 'Content of color variable: ' + value : '';
});
}
Verwenden Sie Folgendes, um auf Felder für Variablen oder Katalogelemente zuzugreifen:
Wenn Sie das Katalogelement in
Serviceportal öffnen, greift das eingebettete Widget auf die Variablenfelder zu, die dem Katalogelement zugeordnet sind.
