Fermer

septembre 26, 2019

3 façons d'implémenter des menus déroulants dans Angular à l'aide de Kendo UI


L'installation du paquet Kendo UI Dropdown dans votre application Angular vous donnera accès à d'autres composants tels que la saisie semi-automatique, la liste déroulante, la liste déroulante, etc. Dans cet article, nous verrons comment utiliser ces composants dans notre application Angular. .

Kendo UI est une bibliothèque utilisée pour créer des applications plus rapidement. Il fournit des composants d'interface utilisateur pour des bibliothèques telles que jQuery, Angular, React et Vue. Il contient plus de 20 composants permettant de créer des graphiques, des tableaux de données et des pages de glisser-déposer. La bibliothèque est facilement personnalisable et fournit un ensemble de thèmes pour Material UI, Bootstrap, etc.

Les composants de Kendo UI sont distribués sous la forme de multiples packages npm afin que vous ne craignez pas de gonfler votre application avec des composants inutiles et d’accroître votre bundle de build. Il offre des composants pour la gestion de grands ensembles de données et pour une visualisation aisée des données.

Les composants Dropdown fournis par Kendo UI sont utiles pour la mise en oeuvre de champs à complétion automatique et de versions plus sophistiquées de l'élément select natif. L'installation du package Dropdown dans votre application Angular vous donnera accès à d'autres composants tels que la saisie semi-automatique, la liste déroulante, la liste déroulante, etc. Dans cet article, nous verrons comment nous pouvons utiliser ces composants dans notre application Angular.

Suivez ce tutoriel, une compréhension de base de Angular est requise. Assurez-vous également que Node est installé sur votre ordinateur personnel. Si vous n'avez aucune connaissance préalable de Angular, veuillez suivre le tutoriel officiel ici et télécharger le nœud pour votre PC ici si vous ne l'avez pas déjà fait.

Nous les utiliserons outils pour construire notre application:

Initialisation de l'application et installation des dépendances

Pour commencer, nous allons utiliser le CLI (interface de ligne de commande) fourni par l'équipe Angular pour initialiser notre projet. Commencez par installer la CLI en exécutant npm install -g @ angular / cli . npm est un gestionnaire de paquets utilisé pour installer des paquets. Il sera disponible sur votre PC si vous avez Node installé; sinon, téléchargez le nœud ici .

Pour créer un nouveau projet Angular à l'aide de la CLI, ouvrez un terminal et exécutez:

pour créer un nouveau projet angulaire --style = scss . ]

Cette commande est utilisée pour initialiser un nouveau projet angulaire. le projet utilisera SCSS comme pré-processeur.

Ensuite, exécutez la commande suivante dans le dossier racine du projet pour installer les dépendances:

     Ng add @ progress / kendo-angular-dropdowns

Ouvrez un terminal dans le dossier du projet et démarrez l'application en exécutant ng serve . Si vous ouvrez votre navigateur et visitez le lien http: // localhost: 4200 vous devriez voir la capture d'écran ci-dessous si tout s'est bien passé.

 capture d'écran angulaire

[1965]

Ce composant est idéal pour gérer les entrées avec beaucoup d'options. Il fournit un champ de saisie dans lequel l'utilisateur entre une valeur de recherche et le composant affiche une liste de suggestions similaires à la valeur de recherche. Ce composant prend en charge le regroupement, le filtrage, la liaison de données, etc. Pour commencer, ouvrez le fichier app.component.html de votre projet et remplacez le contenu par l'extrait ci-dessous:

     < kendo-autocomplete   placeholder  = [19659021] " Entrez un nom ... "  >  </  kendo-autocomplete > 

Cela rendra un composant de saisie semi-automatique simple. Si vous accédez à http: // localhost: 4200 vous devriez le voir en flux continu.

 Implémenter des menus déroulants image 2

Le composant ne fera pas grand chose dans son état actuel. Nous souhaitons transmettre des valeurs de données au composant et obtenir la sélection de l'utilisateur dans le composant. Pour ce faire, nous allons utiliser des liaisons. Vous pouvez transmettre une valeur à la liaison du composant du composant et le composant affichera la valeur liée.

Mettez à jour le fichier app.component.ts pour créer une nouvelle propriété à associer. au composant sélecteur de date. Ouvrez le fichier et créez une propriété appelée aujourd'hui :

    
    
     import   { Composant }   de   '@ angular / core' ; [
    @  Composant  ( {
      sélecteur :   'app-root' 
      templateUrl :   './ app.component.html' 
      styleUrls :   [ './ app.component.scss' ] 
    } ) 
     export   class   AppComponent   19659030] {
      name  =   'Peter' 
    } 

Ensuite, mettez à jour le fichier de modèle pour utiliser la valeur du composant de saisie semi-automatique. Ouvrez le fichier app.component.html et mettez-le à jour pour ajouter une valeur obligatoire au sélecteur de date:

     < kendo-autocomplete   placeholder . =  " Entrez un nom ... "    [value]  =  " nom "  >  </  kendo-autocomplete > 

Les composants de saisie semi-automatique ont été conçus pour fournir à l'utilisateur des suggestions lors de la frappe. Nous n’avons pas nécessairement un ensemble de données volumineux à suggérer à l’utilisateur, mais nous pouvons fournir au composant une liste de noms à filtrer. Le tableau de noms sera lié à la liaison d’entrée de données du composant.

Mettez à jour le fichier de composant pour créer le tableau de noms . Ouvrez le fichier app.component.ts et copiez-y le contenu ci-dessous:

    
    
     import   { Composant }   de   '@ angular / core '; 
    @  Composant  ( {
      sélecteur :   'app-root' 
      templateUrl :   './ app.component.html' 
      styleUrls :   [ './ app.component.scss' ] 
    } ) 
     export   class   AppComponent   19659030] {
      name  =   'Peter' ; 
      names  =   [
         "John" 
         "Mary" 
         "Hannah" 
         "Richard" [19659088] 'Rosy' 
         'Peter' 
      ] 
    } 

Joignez ensuite les données de l'élément AutoComplete. Ouvrez le fichier app.component.html et mettez à jour le contenu pour qu'il soit semblable à l'extrait ci-dessous:

     < kendo-autocomplete   placeholder  =  " Entrez un nom ...  "   [value]  = "  nom  "   [data]  = [19659021] " names "  >  </  kendo-autocomplete > 

 Implémenter des menus déroulants image 3

.

Avec cette mise à jour, nous pouvons transmettre des valeurs du fichier de composant au modèle, mais l'entrée d'un utilisateur ne sera pas mise à jour car nous avons utilisé une liaison unidirectionnelle. Pour transmettre des valeurs de composant à la vue et inversement, nous devons mettre à jour la liaison de la valeur .

Mettez à jour le fichier app.component.html pour utiliser la méthode bidirectionnelle. binding:

     < kendo-autocomplete   placeholder  =  " Entrez un nom ... "    [(value)]  =  " name "    [data]  =  " noms "  >  </  kendo-autocomplete > 

Nous pouvons également utiliser les formulaires réactifs avec le composant de saisie semi-automatique. Créez un groupe de formulaires pour gérer la valeur de nom FormControl et affectez la propriété name à un FormControl . Mettez à jour le fichier app.component.html pour qu'il soit similaire à l'extrait de code ci-dessous:

     // app.component.html
     < formulaire   [formGroup]  =  " formulaire "    (soumettre)  =  " onSubmit ()  " > 
       < kendo-autocomplete   placeholder  =  " Entrez un nom ... "    formControlName  =  "  name  "   [data]  = "  noms  " >  </  kendo- autocomplete > 
       < button   type  =  " submit "  >  log  </  bouton  ]> 
     </  forme > 

Dans l’extrait ci-dessus, nous utilisons l’approche des formulaires réactifs en créant un groupe de formulaires pour gérer les contrôles de formulaire. Cette approche basée sur un modèle garantit la synchronisation des valeurs entre la vue et le composant.

Mettez à jour le fichier app.component.ts pour créer la propriété FormGroup:

     import   { Composant }   de   '@ angular / core' ; 
     import   { FormControl  FormGroup }   de   '@ angular / forms' ; 
    @  Composant  ( {
      sélecteur :   'app-root' 
      templateUrl :   './ app.component.html' 
      styleUrls :   [ './ app.component.scss' ] 
    } ) 
     export   class   AppComponent   19659030] {
      name  =   "Peter" ; 
      names  =   [
         "John" 
         "Mary" 
         "Hannah" 
         "Richard" [19659088] 'Rosy' 
         'Peter' 
      ] 
      form  =   new   FormGroup  ( {
        nom :   nouveau   FormControl  ( ce .  nom ) 
      } ) 
       le Subscription  ([19659021])  {
        console .  log  ( ceci .  forme .  valeur ) 
      } 
    } 

Pour utiliser les formulaires réactifs, vous devez importer le module ReactiveFormsModule dans le fichier app.module.ts :

    
    
     import   { BrowserModule }   de   '@ angular / platform-browser' ; 
    
    
     import   { RéactifFormModule }   de   '@ angular / forms' ;  ]
    
    @  NgModule  ( {
      déclarations :   [
        
      ] 
      importations :   [
        
        Formulaire de formulaire réactif 
      ] 
      fournisseurs :   [] 
      bootstrap :   [ AppComponent ] 
    } ) 
     classe d'exportation     AppModule   {]. 

Après cette mise à jour, vous pouvez cliquer sur le bouton d'envoi après avoir mis à jour le sélecteur de date pour enregistrer les valeurs mises à jour sur la console.

 Implémenter les menus déroulants image 4

Filtrage des données

Le composant AutoComplete fournit une méthode filterChange qui est déclenchée chaque fois que la valeur de recherche change. À l'aide du déclencheur, vous pouvez configurer un gestionnaire personnalisé pour extraire dynamiquement les données de votre source de données. Voyons comment nous pouvons utiliser cette liaison de sortie pour extraire des données d'une source externe.

Dans le fichier app.component.ts nous allons implémenter une requête de recherche simple pour le . RestCountries API permettant d'extraire les pays contenant des lettres correspondant à la requête de recherche:

  import   { Composant }   de   '@ angular / core' ; 
import { FormControl FormGroup } de '@ angular / forms' ;
    @ Composant ( {
      sélecteur : 'app-root'
      templateUrl : './ app.component.html'
      styleUrls : [ './ app.component.scss' ]
} )
export class AppComponent 19659030] {
      name = '' ;
      apiUrl = 'https://restcountries.eu/rest/v2/name/' ;
      countries = [
]
handleFilter ( valeur ) {
ce . http . 19659210] get ( ` $ { ceci . apiUrl } $ { valeur } ` ) . abonnez-vous ( ([1945921]) . . => {
const résultats = res . carte ( pays => pays




Source link