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 .

140
demandé sur SharpC 2013-04-24 09:59:32

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".

121
répondu Kirby L. Wallace 2016-05-19 15:27:38

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 Directives

ont 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 /

40
répondu pkozlowski.opensource 2013-04-24 06:03:13

vous pouvez déclarer l'espace de nom angulaire <html xmlns:ng="http://angularjs.org" ng-app>

6
répondu Mounir 2013-05-20 17:13:13

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.

5
répondu abject_error 2013-04-24 10:35:36

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>
4
répondu Vahap Gençdal 2016-09-21 11:38:37

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.

3
répondu Abhishek Gakhar 2017-04-04 11:54:29

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

-2
répondu King Raj 2016-07-07 07:51:20