Quelle est la différence entre ng-app et data-ng-app?
J'ai commencé à en apprendre davantage sur les AngularJS et je ne sais plus trop quelles sont les différences entre les directives ng-app
et data-ng-app
.
7 réponses
la plupart de ces réponses sont simplement dire rend le modèle valide HTML , ou HTML Validator Compliant , sans expliquer ce que ces termes signifient, soit.
Je ne sais pas avec certitude, mais je suppose que ces termes s'appliquent aux programmes de validation HTML qui balaient votre code pour la conformité aux normes - un peu comme la peluche. Ils ne reconnaissent pas ng-app
comme attribut valide. Ils s'attendent à ce que les attributs HTML ne soient pas par défaut. à présenter avec
data-attribute_name_here
.
ainsi, les créateurs de AngularJS
ont créé des noms alternatifs pour leurs directives qui incluent le data-
devant eux afin que les programmes de validateur HTML les" aiment".
Aucune en termes de comportement d'exécution, ce sont juste des styles différents de directives de nommage comme décrit ici: http://docs.angularjs.org/guide/directive
Les Directivesont des noms de camel comme ngBind. La directive peut être invoqué en traduisant le nom de cas de chameau en cas de serpent avec ces caractères spéciaux :, -, ou _. Optionnellement, la directive peut être préfixé avec x -, ou data-pour le rendre HTML validator conforme. Ici est une liste de certains des noms de la directive: ng:lier, ng-bind, ng_bind, x-ng-bind et data-ng-bind.
comme vous pouvez le voir en lisant ceci ,le data-
peut être utilisé pour faire passer vos tests HTML validator /
vous pouvez déclarer l'espace de nom angulaire <html xmlns:ng="http://angularjs.org" ng-app>
dans les navigateurs modernes, il n'y a aucune différence, mais dans les plus anciens, ils ne fonctionneront que si vous déclarez un espace de noms XML le définissant.
il y a aussi une différence de validation dans le fait que ng-app
n'est pas valide XHTML, et fera échouer les validations HTML de votre page web. Angular vous permet de préfixer ses directives avec data-
ou x-
pour lui permettre de valider.
vous pouvez utiliser data-ng-, au lieu de ng-, si vous voulez rendre votre page HTML valide.
Ce sera jeter une erreur
<div ng-app="">
<p>Input something in the input box:</p>
<p>Name: <input type="text" ng-model="name"></p>
<p ng-bind="name"></p>
</div>
Ce ne sera pas jeter une erreur
<div data-ng-app="scope" data-ng-init="name='test'">
<p>Input something in the input box:</p>
<p>Name: <input type="text" data-ng-model="name"></p>
<p data-ng-bind="name"></p>
</div>
la différence fondamentale entre ces deux termes est que data-ng-app valide le HTML alors que ce dernier ne le fait pas.La fonctionnalité reste la même. Pour plus de référence, vous pouvez essayer w3Validator.
il n'y a absolument aucune différence entre les deux, sauf que certains validateurs HTML5 vont lancer une erreur sur une propriété comme ng-app, mais ils ne lancent pas d'erreur pour quelque chose préfixé avec data-, comme data-ng-app. Ainsi, utiliser le préfixe de données avec nos directives angulaires est bon.
même vous pouvez utiliser des directives angulaires de la manière mentionnée ci-dessous ng-bind, ng:lier, ng_bind, data-ng-bind, x-ng-bind