57 votes

Attributs des balises AngularJS

J'apprends à connaître AngularJS et constate qu'il ajoute certains de ses propres attributs, qui ne commencent pas par les données, ni les attributs des balises HTML standard, comme celui-ci:

 <html ng-app>
 

ou ca:

 <body ng-controller="PhoneListCtrl">
 

D'où viennent ces attributs ng- * et s'agit-il d'un code HTML valide? Où puis-je en savoir plus à ce sujet?

51voto

Alexander R Points 1679

Strictement parlant, ces attributs ne sont pas définis dans les spécifications HTML ne sont donc pas valide HTML. On pourrait dire que AngularJS fournit et analyse un sur-ensemble de la spécification HTML.

Cependant, comme de v1.0.0rc1, vous pouvez utiliser des données* les attributs, par exemple <html data-ng-app> qui, je crois, sont HTML5 valide. Source.

Il existe un guide pour le AngularJS Compilateur qui contient de plus amples renseignements sur le processus. En bref, le AngularJS compilateur lit votre page HTML, à l'aide de ces attributs pour le guider comme il édite et met à jour votre page, après le chargement, via le javascript et le DOM HTML.

27voto

GFoley83 Points 1423

À partir de la documentation: http://docs.angularjs.org/guide/directive

 <!doctype html>
<html data-ng-app>
  <head>
    <script src="http://code.angularjs.org/1.0.7/angular.min.js"></script>
    <script src="script.js"></script>
  </head>
  <body>
    <div data-ng-controller="Ctrl1">
      These are all valid directive declarations:<br/>
      <input ng-model='name'> <hr/>
      <span ng:bind="name"></span> <br/>
      <span ng_bind="name"></span> <br/>
      <span ng-bind="name"></span> <br/>          
      <span x-ng-bind="name"></span> <br/>
      <span data-ng-bind="name"></span> <br/>
    </div>
  </body>
</html>
 

J'aime la déclaration data-*whatever* comme étant conforme à HTML5.

Donc, pour toute déclaration angulaire (par exemple, ng-controller , ng-app , ng-repeat etc.) ou directives personnalisées, je les préfixerai toujours avec data- .

8voto

Artem Andreev Points 9057

D'où viennent ces attributs ng- *

Depuis le module principal. Code source .

est-ce un code HTML valide?

Non, mais les directives de style d'attribut peuvent être préfixées par x ou data pour le rendre compatible avec le validateur HTML. Voir la documentation direcives .

-1voto

Andrew Salido Points 1

Une autre option consiste à ignorer les noms d'attributs non définis. Si vous utilisez Eclipse, vous pouvez le définir en accédant au projet properties>>validation>>html syntax>>attributes>>ignore undefined attribute names .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X