В настоящее время я смотрю этот стартовый учебник видео дляangular.js
В какой-то момент (после 12'40 ") оратор заявляет, что атрибуты ng-app
и data-ng-app=""
более или менее эквивалентны внутри <html>
тега, а также являются ng-model="my_data_binding
и data-ng-model="my_data_binding"
. Однако оратор говорит, что html будет проверяться с помощью различных валидаторов, в зависимости от того, какой атрибут используемый.
Не могли бы вы объяснить разницу между этими двумя способами, ng-
префикс против data-ng-
префикса?
Ответы:
Хороший вопрос. Разница проста - между ними нет абсолютно никакой разницы, за исключением того, что определенные валидаторы HTML5 будут выдавать ошибку для свойства like
ng-app
, но они не выдают ошибку для чего-либо с префиксомdata-
likedata-ng-app
.Поэтому, чтобы ответить на ваш вопрос, используйте,
data-ng-app
если вы хотите, чтобы проверка HTML была немного проще.Интересный факт: вы также можете использовать
x-ng-app
для того же эффекта.источник
data-
иx-
. Почему нельзя изменить правила проверки HTML, чтобы приниматьng-
вещи?data-*
атрибуты - это способ расширить HTML .Из документации Angularjs
на основе приведенного выше утверждения все действующие директивы
1. ng-bind
2. ng: bind
3. ng_bind
4. data-ng-bind
5. x-ng-bind
источник
Различия заключаются в том, что пользовательские
data-*
атрибуты действительны в спецификации HTML5 . Поэтому, если вам нужна проверка разметки, вы должны использовать их, а неng
атрибуты.источник
Короткий ответ:
ng-model
иdata-ng-model
такие же и эквивалентные!Зачем?
причина:
data-
префиксHTML5 спецификация ожидает, что любой пользовательский атрибут будет иметь префикс
data-
.Причина: и то
ng-model
и другоеdata-ng-model
и эквивалентны.источник
Вы можете использовать data-ng- вместо ng-, если хотите сделать HTML-код вашей страницы корректным.
источник
если вы хотите манипулировать html или html-фрагментами на вашем сервере перед тем, как отправлять их в браузер, вам определенно нужно использовать атрибуты data-ng-xxx вместо просто атрибутов ng-xxx.
источник