• About
  • Advertise
  • Privacy & Policy
  • Contact
Tech News, Magazine & Review WordPress Theme 2017
  • Home
    • Home – Layout 1
    • Home – Layout 2
    • Home – Layout 3
    • Home – Layout 4
    • Home – Layout 5
  • Review

    National Academy of Sciences endorses embryonic engineering

    Watch Dogs 2 Update Coming This Week, Here’s What It Does

    Fujifilm X-T2 review: The definition of a great camera

    The Analogue Nt Mini is the perfect NES console for video game lovers

    Using a mind reading device, ‘locked-in’ patients told researchers they’re happy

    Watch Cruise’s self-driving Bolt EV navigate smoothly to SF’s Dolores Park

  • Gaming

    To regain advertiser trust, Facebook is tracking ads by the millisecond

    National Academy of Sciences endorses embryonic engineering

    Google has been asked to take down over a million websites

    Watch Dogs 2 Update Coming This Week, Here’s What It Does

    The Analogue Nt Mini is the perfect NES console for video game lovers

    GoPro’s Karma drone is back on sale after design flaw made them fall out of the sky

  • Gear
    • All
    • Audio
    • Camera
    • Laptop
    • Smartphone

    Apple Watch Series 2 Is Swimproof and Comes With Built-In GPS

    National Academy of Sciences endorses embryonic engineering

    Jack Dorsey says he’ll continue running both Square and Twitter

    Fujifilm X-T2 review: The definition of a great camera

    The Warby Parker of hair color, Madison Reed, scores new funding and a CMO

    Shopify CEO attempts to defend continued hosting of Breitbart’s online store

    Trending Tags

    • Best iPhone 7 deals
    • Apple Watch 2
    • Nintendo Switch
    • CES 2017
    • Playstation 4 Pro
    • iOS 10
    • iPhone 7
    • Sillicon Valley
  • Computers

    To regain advertiser trust, Facebook is tracking ads by the millisecond

    Google has been asked to take down over a million websites

    Watch Dogs 2 Update Coming This Week, Here’s What It Does

    Fujifilm X-T2 review: The definition of a great camera

    Shopify CEO attempts to defend continued hosting of Breitbart’s online store

    SpaceX targets February 18 for Dragon resupply mission to ISS

  • Applications

    Apple Watch Series 2 Is Swimproof and Comes With Built-In GPS

    To regain advertiser trust, Facebook is tracking ads by the millisecond

    National Academy of Sciences endorses embryonic engineering

    Google has been asked to take down over a million websites

    Watch Dogs 2 Update Coming This Week, Here’s What It Does

    Jack Dorsey says he’ll continue running both Square and Twitter

  • Security

    To regain advertiser trust, Facebook is tracking ads by the millisecond

    National Academy of Sciences endorses embryonic engineering

    Google has been asked to take down over a million websites

    Watch Dogs 2 Update Coming This Week, Here’s What It Does

    The Warby Parker of hair color, Madison Reed, scores new funding and a CMO

    Shopify CEO attempts to defend continued hosting of Breitbart’s online store

No Result
View All Result
  • Home
    • Home – Layout 1
    • Home – Layout 2
    • Home – Layout 3
    • Home – Layout 4
    • Home – Layout 5
  • Review

    National Academy of Sciences endorses embryonic engineering

    Watch Dogs 2 Update Coming This Week, Here’s What It Does

    Fujifilm X-T2 review: The definition of a great camera

    The Analogue Nt Mini is the perfect NES console for video game lovers

    Using a mind reading device, ‘locked-in’ patients told researchers they’re happy

    Watch Cruise’s self-driving Bolt EV navigate smoothly to SF’s Dolores Park

  • Gaming

    To regain advertiser trust, Facebook is tracking ads by the millisecond

    National Academy of Sciences endorses embryonic engineering

    Google has been asked to take down over a million websites

    Watch Dogs 2 Update Coming This Week, Here’s What It Does

    The Analogue Nt Mini is the perfect NES console for video game lovers

    GoPro’s Karma drone is back on sale after design flaw made them fall out of the sky

  • Gear
    • All
    • Audio
    • Camera
    • Laptop
    • Smartphone

    Apple Watch Series 2 Is Swimproof and Comes With Built-In GPS

    National Academy of Sciences endorses embryonic engineering

    Jack Dorsey says he’ll continue running both Square and Twitter

    Fujifilm X-T2 review: The definition of a great camera

    The Warby Parker of hair color, Madison Reed, scores new funding and a CMO

    Shopify CEO attempts to defend continued hosting of Breitbart’s online store

    Trending Tags

    • Best iPhone 7 deals
    • Apple Watch 2
    • Nintendo Switch
    • CES 2017
    • Playstation 4 Pro
    • iOS 10
    • iPhone 7
    • Sillicon Valley
  • Computers

    To regain advertiser trust, Facebook is tracking ads by the millisecond

    Google has been asked to take down over a million websites

    Watch Dogs 2 Update Coming This Week, Here’s What It Does

    Fujifilm X-T2 review: The definition of a great camera

    Shopify CEO attempts to defend continued hosting of Breitbart’s online store

    SpaceX targets February 18 for Dragon resupply mission to ISS

  • Applications

    Apple Watch Series 2 Is Swimproof and Comes With Built-In GPS

    To regain advertiser trust, Facebook is tracking ads by the millisecond

    National Academy of Sciences endorses embryonic engineering

    Google has been asked to take down over a million websites

    Watch Dogs 2 Update Coming This Week, Here’s What It Does

    Jack Dorsey says he’ll continue running both Square and Twitter

  • Security

    To regain advertiser trust, Facebook is tracking ads by the millisecond

    National Academy of Sciences endorses embryonic engineering

    Google has been asked to take down over a million websites

    Watch Dogs 2 Update Coming This Week, Here’s What It Does

    The Warby Parker of hair color, Madison Reed, scores new funding and a CMO

    Shopify CEO attempts to defend continued hosting of Breitbart’s online store

No Result
View All Result
Technique de pointe
No Result
View All Result
Home Générale

Création de directives d’attributs personnalisés dans Angular 11

Caleb by Caleb
juin 24, 2021
153
Création de directives d’attributs personnalisés dans Angular 11
Share on FacebookShare on Twitter


Les directives sont des classes qui ajoutent un comportement supplémentaire aux éléments de vos applications angulaires. Les directives angulaires peuvent aider à gérer de nombreux aspects du DOM, notamment les formulaires, les listes, les styles et bien d’autres. Angular comprend plusieurs directives intégrées et vous pouvez définir la vôtre pour associer un comportement personnalisé aux éléments du DOM. Dans ce didacticiel, nous allons apprendre à créer et à utiliser une directive d’attribut pour que les éléments DIV se comportent comme un bouton ou un lien.

Le monde des directives

À la base, les directives sont des fonctions qui s’exécutent chaque fois que le compilateur angulaire les trouve dans le DOM. Leur but est d’étendre la puissance du HTML en lui donnant une nouvelle syntaxe et de nouvelles fonctionnalités. Angular utilise trois types de directives comme suit :

  1. Composants sont en fait des directives avec des modèles. Sous les couvertures, ils utilisent la directive API et nous donnent un moyen plus propre de les définir.

Les deux autres types de directives n’ont pas de modèles. Au lieu de cela, ils sont spécifiquement adaptés à la manipulation DOM.

  1. Directives d’attribut manipuler le DOM en modifiant son comportement et son apparence. Nous pouvons utiliser des directives d’attribut pour appliquer un style conditionnel aux éléments, afficher ou masquer des éléments ou modifier dynamiquement le comportement d’un composant en fonction d’une propriété changeante. Les directives d’attributs intégrées incluent NgClass, NgStyle, et NgModèle.
  2. Directives structurelles sont spécialement conçus pour créer et détruire des éléments DOM. Certaines directives d’attribut, telles que caché, qui affiche ou masque un élément, ne modifie pas le DOM mais régit l’apparence d’un élément. Les directives structurelles angulaires ont tendance à être beaucoup moins adaptées au DOM, car elles ajoutent ou suppriment complètement des éléments du DOM. En raison de leur nature potentiellement destructrice, vous devez être très prudent lorsque vous les utilisez.

Générer une nouvelle directive

L’Angular CLI a une commande pour créer une directive comme suit :

ng g directive buttonize

L’instruction ci-dessus générera deux fichiers : bouton.directive.ts et le bouton.directive.spec.ts fichier d’essai. Il ajoutera notre nouvelle directive à app.module.ts ainsi que:

import { ButtonizeDirective } from './buttonize.directive';

@NgModule({
  imports: [ BrowserModule ],
  declarations: [
    AppComponent,
    ButtonizeDirective
  ],
  bootstrap: [ AppComponent ]
})
export class AppModule { }

Codage de la directive Buttonize

Au minimum, le fichier .ts de la directive contiendra le @Directif() décorateur qui définit la propriété selector telle qu’elle apparaîtra dans les fichiers modèles, ainsi qu’un constructeur vide :

import { Directive } from '@angular/core';

@Directive({
  selector: '[buttonize]'
})

export class ButtonizeDirective {

  constructor() { }

}

Ajout de notre logique personnalisée

Notre directive nécessitera deux options par défaut : la tabindex et rôle, qui sont définis sur 0 et ’bouton’ respectivement:

const DEFAULT_OPTIONS = {
    tabindex: 0,
    role: 'button'
};

Celles-ci peuvent être remplacées en fournissant des options à notre directive. Pour ce faire, nous allons ajouter une propriété d’entrée nommée de la même manière que notre directive. De cette façon, nous pouvons fournir des options en affectant un objet directement à notre directive dans le modèle comme ceci :

[buttonize]="{tabindex: -1}"

Les options seront définies via le @HostBinding décorateur. Il marque une propriété DOM en tant que propriété de liaison à l’hôte et fournit des métadonnées de configuration. Angular vérifie automatiquement les liaisons des propriétés de l’hôte lors de la détection des modifications, et si une liaison change, elle met à jour l’élément hôte de la directive.

Dans le ngOnInit événement, nous utiliserons la statique Objet.assign() méthode pour définir les options de notre directive. le Objet.assign() la méthode copie tout propre énumérable propriétés d’un ou plusieurs objets source vers un objet cible et renvoie l’objet cible modifié. Voici le code de cette partie :

export class ButtonizeDirective implements OnInit {
    @Input('buttonize')
    public options: any = {};

    @HostBinding('tabindex')
    public tabindex: number;

    @HostBinding('attr.role')
    public role: string;

    constructor() { }

    public ngOnInit(): void {
        this.options = Object.assign({}, DEFAULT_OPTIONS, this.options);
        this.tabindex = this.options.tabindex;
        this.role = this.options.role;
    }
    
    //...
}

Vous pouvez voir la valeur par défaut tabindex et rôle dans l’inspecteur d’éléments du navigateur :

Angular-Browser-Inspector-Element

Manipulation des pressions de touches en angulaire

Il ne reste plus qu’à capturer les pressions sur les touches et à convertir les touches Entrée en clics. Pour ce faire, nous pouvons utiliser le décorateur @HostListener et écouter spécifiquement le ‘keyup.enter’ un événement. Nous devrions également passer dans le Événement de clavier afin que nous puissions l’empêcher de bouillonner jusqu’aux éléments parents. Enfin, nous invoquons le Cliquez sur() méthode sur le ElementRef qui a été injecté via le constructeur :

constructor(protected eleRef: ElementRef) { }

@HostListener('keyup.enter', ["$event"])
public onEnterKeyUp(event: KeyboardEvent): void {
    event.stopPropagation();
    //trigger a mouse click event on a specific HTML element
    this.eleRef.nativeElement.click();
}

Remplacement des options par défaut

Bien que nous ayons déjà fait allusion aux options par défaut, nous n’avons pas vraiment vu d’exemple de substitution d’options en action. En voici un qui définit le tabindex à -1 et attribue un rôle de ‘lien’ :

<span [buttonize]="{tabindex: -1, role: 'link'}" (click)="goToComponent(element)">

Cela aurait pour effet de rendre l’élément SPAN inaccessible via la touche TAB, ce qui serait utile si l’on voulait substituer une autre touche de navigation. Le rôle de lien est utilisé pour identifier un élément qui crée un lien hypertexte vers une ressource qui pourrait être au sein de l’application ou externe. Les lecteurs d’écran et autres technologies d’assistance reposent sur le rôle attribut pour identifier le but et l’utilisation d’un élément.

La démo

Vous trouverez la démo de la leçon d’aujourd’hui sur stackblitz.com. Il contient deux utilisations de la directive buttonize : transformer un DIV en bouton et un autre en lien. Dans les deux cas, l’appui sur la touche Entrée déclenche le gestionnaire de clics. Le « lien » a également un tabindex de -1 afin qu’il ne puisse pas être focalisé via la navigation au clavier. Voici le balisage HTML :

<h2>Attribute Directive Demo</h2>

<h4>Presto, the following DIV is now a button!</h4>
<div buttonize class="buttonlink" (click)="onClick()">Click Me!</div>

<br/>

<h4>Presto, the following DIV is now a link!</h4>
<div class="link" [buttonize]="{tabindex: -1, role: 'link'}" (click)="onClick()">Click Me!</div>
<p>(Notice that you cannot TAB to it.)</p>

Invoqué par clic et Entrée KeyUP événements, le sur clic() le gestionnaire affiche simplement et une boîte d’alerte :

import { Component } from '@angular/core';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['app.component.css']
})
export class AppComponent {

  onClick() {
    alert("Thanks for clicking!");
  }
}

Conclusion

Dans l’article d’aujourd’hui, nous avons vu comment les directives angulaires sont des fonctions qui étendent la puissance du HTML en lui donnant une nouvelle syntaxe et de nouvelles fonctionnalités. Maintenant que vous savez comment créer une directive d’attribut, je ne doute pas que vous en trouverez de nombreuses utilisations dans vos propres applications.

— to www.htmlgoodies.com

Get real time update about this post categories directly on your device, subscribe now.

Unsubscribe
Caleb

Caleb

Recommended.

Le détaillant ouvre un nouveau magasin de téléphonie mobile dans le magasin de Limerick

Le détaillant ouvre un nouveau magasin de téléphonie mobile dans le magasin de Limerick

septembre 25, 2022
Cette technologie de traitement des eaux usées soutenue par DST pour réduire les coûts pour les petites et moyennes entreprises

Cette technologie de traitement des eaux usées soutenue par DST pour réduire les coûts pour les petites et moyennes entreprises

juin 13, 2021

Subscribe.

Trending.

10 problèmes courants de l’iPhone 13 et comment les résoudre

10 problèmes courants de l’iPhone 13 et comment les résoudre

décembre 24, 2021
Comment installer phpMyAdmin sur Debian 11 Bullseye (Apache)

Comment installer phpMyAdmin sur Debian 11 Bullseye (Apache)

novembre 25, 2021
Erreur C14a du code d’assistance Snapchat : comment y remédier ?

Erreur C14a du code d’assistance Snapchat : comment y remédier ?

août 21, 2022
Comment réparer le décalage d’Instagram sur iPhone et Android

Comment réparer le décalage d’Instagram sur iPhone et Android

novembre 26, 2021
Étapes pour installer MySQL sur Ubuntu 22.04 LTS Jammy Linux

Étapes pour installer MySQL sur Ubuntu 22.04 LTS Jammy Linux

mai 15, 2022

Catégories de produits

  • Non classé (2)
Technique de pointe

We bring you the best Premium WordPress Themes that perfect for news, magazine, personal blog, etc. Check our landing page for details.

Follow Us

Catégories

  • Apple
  • Applications
  • Audio
  • Camera
  • Computers
  • Gaming
  • Gear
  • Générale
  • Laptop
  • Microsoft
  • Photography
  • portrait
  • Review
  • Security
  • Smartphone

Étiquettes

actualités industrielles actualité économique affaires ailette AMERS ASIE ASXPAC BACT Buying Guides CMPNY Commerce courrier quotidien CYCS CYCS08 des sports Divertissement EMRG Entreprise GEN Google Inc. ITSE ITSE08 jeu vidéo jeux vidéo l'Internet La technologie Logiciel Microsoft MTPIX NOM nous nouvelles Playstation 4 Pro politique Sillicon Valley SWIT TECH08 technologie TMT TOPCMB TOPNWS Types de contenu Éducation économie

Recent News

Améliorer les résultats pour les patients grâce à la technologie

Améliorer les résultats pour les patients grâce à la technologie

mars 20, 2023
Jio subit une brève panne à Delhi-NCR

Jio subit une brève panne à Delhi-NCR

mars 20, 2023
  • About
  • Advertise
  • Privacy & Policy
  • Contact

© 2023 JNews - Premium WordPress news & magazine theme by Jegtheme.

No Result
View All Result
  • Home
  • Review
  • Apple
  • Applications
  • Computers
  • Gaming
  • Gear
    • Audio
    • Camera
    • Smartphone
  • Microsoft
  • Photography
  • Security

© 2023 JNews - Premium WordPress news & magazine theme by Jegtheme.

Welcome Back!

Sign In with Facebook
Sign In with Google
Sign In with Linked In
OR

Login to your account below

Forgotten Password?

Retrieve your password

Please enter your username or email address to reset your password.

Log In

Add New Playlist

Nous avons découvert un nouveau système qui génère des revenus 100% passifs... Ignorer