Comecei a aprender sobre o AngularJS e estou confuso sobre quais são as diferenças entre as diretivas ng-app
e data-ng-app
.
angularjs
angularjs-directive
user1876508
fonte
fonte
Respostas:
A maioria dessas respostas está simplesmente dizendo que torna o modelo válido em HTML ou compatível com o validador de HTML , sem explicar o que esses termos significam.
Não sei ao certo, mas acho que esses termos se aplicam aos programas de validação HTML que examinam seu código quanto à conformidade com os padrões - como fiapos. Eles não reconhecem
ng-app
como um atributo válido. Eles esperam que atributos HTML não padrão sejam precedidos pordata-attribute_name_here
.Portanto, os criadores do site
AngularJS
criaram nomes alternativos para suas diretivas, que incluem os que estãodata-
na frente deles, para que os programas validadores de HTML "gostem" deles.fonte
Nenhum em termos de comportamento em tempo de execução, esses são apenas estilos diferentes de diretivas de nomenclatura, conforme descrito aqui: http://docs.angularjs.org/guide/directive
Como você pode ver lendo isso,
data-
pode ser usado para fazer seu HTML passar nos testes do validador HTML /fonte
Você pode declarar o espaço para nome angular
<html xmlns:ng="http://angularjs.org" ng-app>
fonte
Nos navegadores modernos, não há diferença, mas nos IEs mais antigos, eles não funcionarão, a menos que você declare um namespace XML definindo-o.
Também há uma diferença de validação em que
ng-app
XHTML não é válido e fará com que sua página da Web falhe nas validações em HTML. Angular permite prefixar suas diretivas comdata-
oux-
para validar.fonte
Você pode usar data-ng-, em vez de ng-, se desejar tornar o HTML da sua página válido.
Isso gerará um erro
Isso não gera um erro
fonte
A diferença básica entre esses dois termos é que o aplicativo de dados-ng valida o HTML, enquanto o último não. A funcionalidade permanece a mesma. Para mais referência, você pode tentar o w3Validator.
fonte
Absolutamente não há 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 qualquer coisa prefixada com dados, como dados-ng-app. Portanto, é bom usar o prefixo de dados com nossas diretivas angulares.
Mesmo você pode usar diretivas angulares das maneiras mencionadas abaixo ng-bind, ng: bind, ng_bind, data-ng-bind, x-ng-bind
fonte