Fermer

septembre 27, 2021

Liaison de données Partie 4— Liaison d'attributs


La liaison de données peut être déroutante lorsque vous démarrez dans Angular. Décomposons-le ! Cet article couvre la liaison d'attributs à sens unique.

Ceci est un autre article sur la liaison de données dans Angular. Si vous ne l'avez pas fait, assurez-vous de consulter les articles précédents où nous avons examiné interpolationliaison d'événements et liaison de propriété.

Prérequis[19659004]Ce post est adapté à tous les niveaux de développeurs front-end qui utilisent Angular, il n'est donc pas supposé être familiarisé avec les concepts et les processus d'installation pour débutants.

Voici quelques conditions préalables que vous devriez avoir pour suivre la démonstration de cet article avec Angular 12 :[19659006]Visual Studio Code comme environnement de développement intégré

  • Node version 11.0 installé sur votre machine
  • Node Package Manager version 6.7 (il est généralement livré avec l'installation de Node).
  • Angular CLI version 8.0 ou ci-dessus
  • La dernière version d'Angular (version 12)
  • // exécuter la commande dans un terminal
    ng version
    

    Confirmez que vous utilisez la version 12, et mettez à jour vers la 12 si ce n'est pas le cas. Construction

    Nous allons utiliser l'assistant de modèle d'interface utilisateur Kendo pour générer un nouveau projet de test dans lequel nous montrerons comment fonctionne la liaison d'attributs.

    Ouvrez votre application VS Code et accédez à la palette de commandes (tapez Commande + Maj + P sur Mac ou Ctrl + Maj + P sur PC) pour ouvrez l'assistant d'interface utilisateur de Kendo. Si vous ne l'avez pas déjà installé, allez dans l'onglet Extensions, recherchez Kendo UI Template Wizard et installez-le. Redémarrez l'application VS Code, puis revenez à la palette de commandes pour ouvrir l'assistant d'interface utilisateur Kendo.

    L'assistant de modèle d'interface utilisateur Kendo comporte des champs pour le nom du projet et le chemin de sortie. emplacement sur votre machine où vous souhaitez qu'il soit enregistré, et cliquez sur "Suivant".</p>
<p> Choisissez Angular puis choisissez vierge avec 1 page et cliquez sur "Suivant".  » title= »wizard-page »/></p>
<p>Choisissez CSS par défaut comme style et cliquez sur « Créer ». Une fois terminé, cliquez sur "Ouvrir un nouveau projet". Ouvrez le terminal et téléchargez toutes les dépendances Node avec cette commande :</p>
<pre><code>npm install
</code></pre>
<p>Après cela, vous pouvez exécuter l'application sur le serveur de développement avec cette commande :</p>
<pre><code>ng serve
</code></pre>
<p>L'application devrait ressembler à ceci si vous visitez localhost:4200 dans votre navigateur.</p>
<p><img decoding=

    Maintenant, tout est prêt. Voici à quoi ressemble la syntaxe de la liaison d'attribut :

    [attr.attributeName]="expression"
    

    Qu'est-ce que la liaison d'attributs ?

    La liaison d'attributs vous permet essentiellement de lier les attributs des éléments du composant au modèle de vue. Il s'agit d'une approche de liaison de données à sens unique, tout comme la liaison de propriété.

    La liaison d'attributs dans Angular vous aide à définir directement les valeurs des attributs. Avec la liaison d'attributs, vous pouvez améliorer l'accessibilité. —  Angular Docs

    Si vous avez suivi la série, vous pouvez vous demander quelle est la différence entre la liaison de propriété et la liaison d'attribut. Une façon de voir les choses est la différence entre les attributs et les propriétés.

    Attributs et propriétés

    Les attributs et les propriétés ne sont pas vraiment les mêmes car les attributs sont définis par HTML et les propriétés sont définies par le DOM lui-même. De plus, les attributs initialisent essentiellement les propriétés DOM et, une fois qu'ils le font, les valeurs de ces propriétés ne peuvent pas changer. Pendant ce temps, les valeurs des propriétés peuvent changer.

    Un moyen plus direct de les voir est les attributs HTML et les propriétés DOM. Nous pouvons voir une illustration qui explique mieux ceci :

    Dans votre fichier app component.html, remplacez le contenu par le bloc de code ci-dessous :

    <div class=" content">
        <app-header></app-header>
        <router-outlet>
            <input type="text" value= "Nouvelle valeur"> <br>
        </router-outlet>
        
    </div>
    <div class="footer">
        <app -footer></app-footer>
    </div>
    

    Maintenant, exécutez la commande dev server ci-dessous pour exécuter l'application dans localhost :

     ng serve
    

    Vous pouvez voir le champ de saisie ici avec la valeur de "nouvelle valeur" comme prévu.

    Kendo UI pour Angular et une case qui dit Nouvelle valeur

    Cliquez maintenant sur la zone de saisie et inspectez-le pour afficher la console de votre navigateur. À l'intérieur, tapez ces commandes :

    $0.getAttribute(‘value’)
    $0.valeur
    

    Vous verrez qu'ils renvoient tous les deux la même valeur. Remplacez maintenant le texte de la zone de saisie par autre chose et réexécutez les deux commandes ci-dessus dans la console. Les résultats montrent que les attributs ne changent pas.

    0.getAttribute(‘value’) et $0.value affichent tous les deux une « nouvelle valeur ». Ensuite, $0.getAttribute(‘value’) reste le même mais $0.value devient simplement «Nouveau». Puisque nous savons que la liaison d'attribut et la liaison de propriété sont similaires, voici la différence et pourquoi vous devrez peut-être utiliser la liaison d'attribut plutôt que la liaison de propriété. Outre la syntaxe, certains attributs ne sont pas supportés nativement par les éléments DOM. Oui, je sais que vous avez vu l'attribut value et la propriété value, mais c'est en effet une occurrence possible. Angular résout ce problème en vous permettant d'effectuer une liaison d'attribut. Remplacez le contenu du fichier app.component.html par le bloc de code ci-dessous :</p>
<pre class=<div class="content"[19659041]> <app-header></app-header> <router-outlet> <entrée type="text" valeur="Nouvelle valeur" > <br> <br> <table style="border- collapse: collapse;"> <thead style="border[19659041]: 1px noir uni;"> <tr> <th colspan="1" style="bordure: 1px noir uni;"> Liste d'amis </th> </tr> </thead> <tbody style="border: 1px noir uni;"> <tr > <td>Lotanna</td> <td>Nwose[19659142]</td> </tr> <tr> <td>[19659160]Jean</td> <td>Biche</td> </ tr> <tr> <td>Olivia</td>[19659130]<td>Pape</td> </tr> <tr> <td>Jeff</td> <td>[19659160]Bezos</td> </tr> </tbody> </tableau > </routeur-outlet> </div> <div class=[19659041]"footer"> <app-footer></app-footer> < /div>

    C'est un tableau simple avec 4 lignes et 2 colonnes. Nous allons définir l'étendue des colonnes pour l'en-tête du tableau.

    L'en-tête de la liste d'amis se trouve dans une zone plus courte que les noms en dessous

    Assurez-vous maintenant que votre fichier app component.ts ressemble à ceci :[19659079]import { Composant } de '@angular/core';
    @Composant({
    sélecteur : 'app-root',
    templateUrl: './app.component.html'
    })
    export class AppComponent {
    colVal: nombre = 2
    }

    Nous avons initialisé la valeur 2 pour cela. Maintenant, si vous revenez au modèle et changez le 1 en colVal, vous voyez que rien ne se passe. Si vous en faites aussi un cas d'interpolation, encore une fois, rien ne se passe. Si vous essayez d'effectuer une liaison de propriété, vous obtiendrez l'erreur de propriété inconnue indiquant qu'il ne s'agit pas d'une propriété connue de l'élément de table. Allez-y et modifiez le bloc ci-dessous pour inclure la syntaxe d'attribut comme ceci :

    <tr>
        <th [attr.colspan]="colVal"  style="border: 1px noir uni;">
                            Liste d'amis
         </th>
    </tr>
    

    Vous voyez que l'espacement des colonnes fonctionne maintenant comme vous l'attendez.

    Conclusion

    Dans cet article, nous avons examiné la liaison d'attributs, comment elle est utilisée et quand elle est utilisée. Nous avons examiné à quel point il est similaire à la liaison de propriété et aux recommandations d'Angular. Nous avons également vu pourquoi la liaison d'attributs peut être importante avec colspan. Restez à l'écoute pour plus de messages sur la liaison de données.




    Source link