html5 - route - remove hashbang from url angularjs




ng-app vs. data-ng-app, qual é a diferença? (4)

Resposta curta:

ng-model e data-ng-model são iguais e equivalentes!

Por quê?

  1. motivo para: prefixo de data-
    A especificação HTML5 espera que qualquer atributo personalizado seja prefixado por data- .

  2. razão para: ng-model e data-ng-model são iguais e equivalentes.

Documento AngularJS - Normalização

Angular normaliza a tag e o nome do atributo de um elemento para determinar quais elementos correspondem a quais diretivas. Normalmente, nos referimos a diretivas por seu nome normalizado camelCase ngModel maiúsculas e minúsculas (por exemplo, ngModel ). No entanto, como o HTML não faz distinção entre maiúsculas e minúsculas, nos referimos a diretivas no DOM por formulários minúsculos, geralmente usando atributos dash-delimited por dash-delimited em elementos DOM (por exemplo, ng-model ).

O processo de normalização é o seguinte:
1. Retirar x- e data- da frente do elemento / atributos.
2. Converta o nome:, - ou _ -limitado para camelCase .

Por exemplo
os seguintes formulários são todos equivalentes e correspondem à diretiva ngBind:

<div ng-controller="Controller">
  Hello <input ng-model='name'> <hr/>
  <span ng-bind="name"></span> <br/>
  <span ng:bind="name"></span> <br/>
  <span ng_bind="name"></span> <br/>
  <span data-ng-bind="name"></span> <br/>
  <span x-ng-bind="name"></span> <br/>
</div>

Atualmente estou olhando para este vídeo tutorial de início para angular.js

Em algum momento (após 12'40 "), o locutor afirma que os atributos ng-app e data-ng-app="" são mais ou menos equivalentes dentro da tag <html> , e assim são ng-model="my_data_binding e data-ng-model="my_data_binding" . No entanto, o orador diz que o html seria validado através de diferentes validadores, dependendo de qual atributo é usado.

Você poderia explicar a diferença entre as duas formas, ng- prefix contra data-ng- prefix?


As diferenças estão no fato de que os atributos data-* personalizados são válidos na especificação HTML5 . Portanto, se você precisar que sua marcação seja validada, deverá usá-los em vez dos atributos ng .


Da documentação do Angularjs

Angular normaliza a tag e o nome do atributo de um elemento para determinar quais elementos correspondem a quais diretivas. Normalmente, nos referimos a diretivas por seu nome normalizado camelCase com distinção entre maiúsculas e minúsculas (por exemplo, ngModel). No entanto, como o HTML não faz distinção entre maiúsculas e minúsculas, nos referimos a diretivas no DOM por formulários minúsculos, geralmente usando atributos delimitados por traço em elementos DOM (por exemplo, ng-model).

O processo de normalização é o seguinte:

Retirar x e dados da frente do elemento / atributos. Converta o nome: delimitado por:, - ou _ para camelCase. Aqui estão alguns exemplos equivalentes de elementos que correspondem ao ngBind:

com base na declaração acima abaixo, todas são diretrizes válidas

1. ng-bind
2. ng: bind
3. ng_bind
4. dados-ng-bind
5. x-ng-bind


Se você quiser manipular html ou html-fragments em seu servidor antes de servi-lo no navegador, você definitivamente quer usar atributos data-ng-xxx em vez de apenas atributos ng-xxx.

  1. Isso torna seu html válido, o que significa que ele pode ser usado por analisadores html (baseados em servidor) como domdocument (php) ou outros. Esses analisadores geralmente falham em html não bem formado.
  2. Angular normaliza o atributo, mas lembre-se, isso está no cliente, não no servidor.




angularjs