Я начал , чтобы узнать о AngularJS и смущает о том, что различия между ng-app
и data-ng-app
директивами.
angularjs
angularjs-directive
user1876508
источник
источник
Ответы:
Большинство из этих ответов просто говорят о том, что делает шаблон допустимым HTML или HTML Validator Compliant , без объяснения того, что означают эти термины.
Я не знаю наверняка, но я предполагаю, что эти термины применяются к программам проверки HTML, которые сканируют ваш код на соответствие стандартам - вроде как lint. Они не распознаются
ng-app
как действительный атрибут. Они ожидают, что атрибуты HTML не по умолчанию будут предвареныdata-attribute_name_here
,Таким образом, создатели
AngularJS
создали альтернативные имена для своих директив, которые включаютdata-
перед ними так, чтобы программы валидатора HTML «полюбили» их.источник
Ни с точки зрения поведения во время выполнения, это просто разные стили директив именования, как описано здесь: http://docs.angularjs.org/guide/directive
Как вы можете видеть из этого, он
data-
может быть использован для того, чтобы ваши HTML проходили тесты валидатора HTML /источник
Вы можете объявить угловое пространство имен
<html xmlns:ng="http://angularjs.org" ng-app>
источник
В современных браузерах нет никакой разницы, но в старых IE они не будут работать, если вы не объявите пространство имен XML, определяющее его.
Существует также разница в проверке в том, что
ng-app
это недопустимый XHTML, и это приведет к тому, что ваша веб-страница не пройдет проверку HTML. Angular позволяет ставить перед директивами префиксdata-
илиx-
разрешать его проверку.источник
Вы можете использовать data-ng- вместо ng-, если хотите сделать HTML-код вашей страницы корректным.
Это выдаст ошибку
Это не выдаст ошибку
источник
Основное различие между этими двумя терминами заключается в том, что data-ng-app проверяет HTML, а последний - нет. Функциональность остается прежней. Для получения дополнительной информации вы можете попробовать w3Validator.
источник
Абсолютно нет никакой разницы между ними, за исключением того, что некоторые валидаторы HTML5 будут выдавать ошибку для свойства, такого как ng-app, но они не выдают ошибку для чего-либо с префиксом data-, например data-ng-app. Поэтому использование префикса данных с нашими угловыми директивами - это хорошо.
Даже вы можете использовать угловые директивы следующими способами: ng-bind, ng: bind, ng_bind, data-ng-bind, x-ng-bind
источник