J'ai commencé à en apprendre davantage sur AngularJS et je ne sais pas quelles sont les différences entre les directives ng-app
et data-ng-app
.
J'ai commencé à en apprendre davantage sur AngularJS et je ne sais pas quelles sont les différences entre les directives ng-app
et data-ng-app
.
Réponses:
La plupart de ces réponses disent simplement que cela rend le modèle valide HTML ou HTML Validator Compliant , sans expliquer non plus ce que ces termes signifient.
Je ne sais pas avec certitude, mais je suppose que ces termes s'appliquent aux programmes de validation HTML qui analysent votre code pour la conformité aux normes - un peu comme de la charpie. Ils ne reconnaissent pas ng-app
comme un attribut valide. Ils s'attendent à ce que les attributs HTML non par défaut soient précédés de
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 validation HTML les "aiment".
Aucun en termes de comportement d'exécution, ce ne sont que des styles de directives de dénomination différents, comme décrit ici: http://docs.angularjs.org/guide/directive
Les directives ont des noms en cas de chameau tels que ngBind. La directive peut être invoquée en traduisant le nom de cas du chameau en cas de serpent avec ces caractères spéciaux:, - ou _. En option, la directive peut être préfixée avec x- ou data- pour la rendre compatible avec le validateur HTML. Voici une liste de certains des noms de directive possibles: ng: bind, 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 que votre HTML passe les tests de validation HTML /
Vous pouvez déclarer l'espace de noms angulaire <html xmlns:ng="http://angularjs.org" ng-app>
Dans les navigateurs modernes, il n'y a pas de différence, mais dans les IE plus anciens, ils ne fonctionneront que si vous déclarez un espace de noms XML le définissant.
Il existe également une différence de validation en ce que le ng-app
XHTML n'est pas valide et entraînera l'échec des validations HTML de votre page Web. Angular vous permet de préfixer ses directives avec data-
ou x-
de lui permettre de valider.
Vous pouvez utiliser data-ng-, au lieu de ng-, si vous souhaitez rendre votre page HTML valide.
Cela lancera 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>
Cela ne jettera pas d'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érences, vous pouvez essayer w3Validator.
Il n'y a absolument aucune différence entre les deux, sauf que certains validateurs HTML5 lèveront une erreur sur une propriété comme ng-app, mais ils ne lèveront pas d'erreur pour tout ce qui est préfixé avec data-, comme data-ng-app. Donc, utiliser le préfixe de données avec nos directives angulaires est une bonne chose.
Même vous pouvez utiliser des directives angulaires de la manière mentionnée ci-dessous ng-bind, ng: bind, ng_bind, data-ng-bind, x-ng-bind