Question Nom de la directive angulaire: seules les minuscules sont autorisées?


Mon code:

app.directive('abcabc', function (){ alert('directive');}); // working

mais

app.directive('abcAbc', function (){ alert('directive');}); // not working !
app.directive('abc-abc', function (){ alert('directive');}); // not working !

Est-ce que je me trompe? Ou existe-t-il des règles de nommage spéciales pour la directive angulaire?


73
2017-08-01 09:59


origine


Réponses:


AngularJS tente de rendre tout le monde heureux!

Certaines personnes préfèrent utiliser des attributs de données, comme data-abc-abc, Je suppose pour garder les validateurs heureux. D'autres personnes préfèrent utiliser des espaces de noms comme abc:abc, et d'autres préfèrent utiliser le nom de la directive réelle abcAbc. Ou même tous les chapeaux ABC_ABC. Ou des attributs d'extension comme x-abc-abc.

AngularJS normalise le nom utilisé en HTML pour tenter de couvrir tous ces cas. data- et x- sont dépouillés, le reste camelcased avec :, - et _ comme limites de mots. Cela fait abcAbc parmi les cas mentionnés ci-dessus, qui est utilisé pour rechercher la directive déclarée en JavaScript.

Ceci est tout ce qu'on appelle la normalisation d'attribut (US: attribuer la normalisation) et peut être trouvé dans le Documentation AngularJS et code source.


117
2017-08-01 10:01



Vous devez utiliser des noms séparés par des tirets dans les fichiers html et camelCase pour le nom correspondant dans la directive.

Comme vous pouvez le lire sur le doc: Angular utilise name-with-dashes pour les noms d'attribut et camelCase pour le nom de directive correspondant)

Ici: http://docs.angularjs.org/tutorial/step_00


23
2017-08-01 10:02



Eh bien, le nom de la directive doit être en minuscule, au moins dans AngularJS version 1.4.9, sinon, j'obtiens une erreur $ injectable


0
2018-03-05 12:14