Syntaxe
<element ng-init="expression"></element>
|
Paramètres
Nom |
Description |
element |
Ce paramètre permet d'indiquer une balise. |
expression |
Ce paramètre permet d'indiquer une expression à évaluer. |
Description
Cette directive permet de fixer la valeur initiale pour une application.
Remarques
- Usage initialisation des données : La directive ng-init est principalement utilisée pour initialiser des variables ou des données dans l'étendue
d'AngularJS. Par exemple, elle peut être utilisée pour affecter une valeur par défaut à une variable dans un modèle. Cependant, son utilisation est déconseillée pour
des tâches complexes, car elle peut rendre le code difficile à maintenir.
- Mauvaise pratique pour la logique métier : Bien que ng-init permette d'exécuter du code JavaScript
directement dans les gabarits, il est considéré comme une mauvaise pratique d'y inclure de la logique métier. Les contrôleurs ou les services devraient être utilisés pour
gérer la logique, afin de maintenir la séparation des responsabilités.
- Exécution unique : ng-init est évaluée une seule fois lors du rendu initial du DOM par AngularJS. Si le
modèle ou la vue est rechargé ou détruit, la directive sera réexécutée si le DOM correspondant est recréé. Cela peut poser des problèmes
si l'état de l'application dépend fortement des données initialisées.
- Risques pour la lisibilité du code : L'utilisation excessive de ng-init dans des fichiers HTML peut rendre le code difficile à lire et à comprendre.
Cela disperse l'initialisation des données entre le contrôleur et le gabarit, ce qui complique le débogage et la maintenance du code.
- Alternative avec le contrôleur : Au lieu d'utiliser ng-init, il est préférable de définir les données initiales directement dans le contrôleur
AngularJS ou via un service. Cela permet de centraliser la logique d'initialisation et de rendre le code plus cohérent et réutilisable.
- Utilisation dans des cas simples : ng-init peut être utile pour des cas simples, comme des démonstrations ou des prototypes, lorsqu'un contrôleur dédié
semble superflu. Par exemple, définir une liste statique pour tester une directive ng-repeat est un scénario typique où ng-init est acceptable.
- Problèmes avec des directives dynamiques : Si ng-init est utilisé dans un élément conditionné par une directive comme ng-if, il ne sera exécuté que
si la condition associée est remplie. Cela peut entraîner des comportements inattendus si l'utilisateur s'attend à ce que l'initialisation ait lieu indépendamment de la condition.
- Potentiel pour des valeurs dépendantes : ng-init peut être utilisé pour calculer des valeurs dépendantes directement dans un gabarit. Par exemple, si une
variable dépend de plusieurs autres, ng-init peut définir cette dépendance. Cependant, il est préférable de déplacer ces calculs dans un contrôleur pour éviter de
surcharger le gabarit.
Dernière mise à jour : Dimanche, le 9 décembre 2018