Atualmente, estou vendo este vídeo tutorial de início paraangular.js
Em algum momento (após 12'40" ), os estados de alto-falante que os atributos ng-app
e data-ng-app=""
são mais ou menos equivalentes dentro da <html>
tag, e assim são ng-model="my_data_binding
e data-ng-model="my_data_binding"
. No entanto, o orador diz o html seria validado através de diferentes validadores, dependendo de qual atributo é usava.
Você poderia explicar a diferença entre as duas maneiras, ng-
prefixo versus data-ng-
prefixo?
Respostas:
Boa pergunta. A diferença é simples - não há absolutamente nenhuma diferença entre os dois, exceto que certos validadores HTML5 lançam um erro em uma propriedade como
ng-app
, mas eles não lançam um erro para algo prefixado comdata-
, comodata-ng-app
.Portanto, para responder sua pergunta, use
data-ng-app
se você deseja validar seu HTML um pouco mais fácil.Curiosidade: você também pode usar
x-ng-app
o mesmo efeito.fonte
data-
e remover manualmentex-
. Por que as regras de validação HTML não podem ser alteradas para aceitarng-
coisas?data-*
atributos são o caminho para estender o HTML .Da documentação do Angularjs
com base na declaração acima, todas são diretivas válidas
1. ng-bind
2. ng: bind
3. ng_bind
4. data-ng-bind
5. x-ng-bind
fonte
A diferença está no fato de que os
data-*
atributos personalizados são válidos na especificação HTML5 . Portanto, se você precisar que sua marcação seja validada, use-as em vez dosng
atributos.fonte
Resposta curta:
ng-model
edata-ng-model
são iguais e equivalentes!Por quê?
motivo para:
data-
prefixo Aespecificação HTML5 espera que qualquer atributo personalizado seja prefixado por
data-
.razão para: ambos
ng-model
edata-ng-model
são iguais e equivalentes.fonte
Você pode usar data-ng-, em vez de ng-, se desejar tornar o HTML da sua página válido.
fonte
se você deseja manipular fragmentos html ou html no seu servidor antes de veiculá-lo no navegador, definitivamente deseja usar atributos data-ng-xxx em vez de apenas ng-xxx.
fonte