Remplacer un script de Catalogue de services formulaire par un widget

  • Rversion finale: Washingtondc
  • Mis à jour 1 févr. 2024
  • 1 minute de lecture
  • Vous pouvez utiliser des widgets pour remplacer les macros d’interface Portail de services utilisateur. Si votre Catalogue de services formulaire inclut une macro d’interface utilisateur qui fait référence à d’autres champs ou variables du formulaire, vous pouvez créer un widget pour héberger du code réutilisable et l’incorporer dans le Catalogue de services formulaire. Utilisez une syntaxe spéciale pour accéder à tous les champs variables du formulaire.

    Avant de commencer

    Rôle requis : admin ou sp_admin

    Procédure

    1. Créez un widget qui effectue l’action que vous souhaitez utiliser dans les formulaires d’éléments de catalogue.
      Consultez l’étape 7 pour obtenir un exemple de widget simple qui permet d’accéder à une autre variable du formulaire.
    2. Ouvrez un élément de catalogue qui utilisait auparavant une macro d’interface utilisateur ou un autre composant réutilisable non pris en charge dans Portail de services.
    3. Dans les listes connexes, ajoutez une nouvelle variable à l’élément de catalogue.
    4. Configurez le formulaire de la variable pour ajouter le champ Widget .
    5. Dans le champ Type , sélectionnez Macro.
    6. Dans le champ Widget , sélectionnez un widget qui effectue l’action souhaitée.
    7. Facultatif : Utilisez la syntaxe $scope.page.g_form() ou $scope.page.field dans le widget incorporé pour accéder aux valeurs des éléments de catalogue.
      Cet exemple montre comment modifier la valeur d’une variable Texte sur ligne unique dont la couleur de nom est associée à l’élément de catalogue.
      Modèle HTML de widget
      <div>  
        Data from catalog variable:  
        <h1>{{ c.data.message }}</h1>  
      </div>
      Script client de widget
      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 : '';  
      });  
      }  
      Vous pouvez utiliser ce qui suit pour accéder aux champs de variable ou d’élément de catalogue :
      • $scope.page.g_form() : la g_form instance sur le formulaire. Vous pouvez utiliser toutes les méthodes de g_form prises en charge décrites à la section Service Portal et scripts clients. Par exemple, g_form.setValue('variable_name', 'new value') ;.
      • $scope.page.field() : objet qui représente la variable.
      Lorsque vous ouvrez l’élément de catalogue dans , Portail de servicesle widget incorporé accède aux champs variables associés à l’élément de catalogue.

      L’entrée de la variable s’affiche dans le widget incorporé.