Подтвердить что ты не робот

В чем разница между ng-click и data-ng-click в angularjs?

С первого взгляда кажется, что data-ng-click может передавать некоторые данные, поскольку аргумент метода должен вызываться во время нажатия кнопки.

Но я не вижу разницы.

Я следил за фрагментами кода:

HTML

<input 
    type="button" 
    value="Fess"
    ng-click="toggle(2)">

ИЛИ

<input 
    type="button" 
    value="Fess"
    data-ng-click="toggle(2)">

JS

$scope.toggle = function (valueS) {
    alert(valueS);        
}

Оба работают.

Спасибо,

4b9b3361

Ответ 1

Это одно и то же. Вы можете использовать data-ng-click для создания допустимого html.

Ответ 2

Из angular документов по директивам:

В директивах есть имена с верблюдом, такие как ngBind. Директива может быть вызывается путем перевода имени случая верблюда в случай змеи с этими специальные символы:, -, или _. При желании директива может быть с префиксом x- или data-, чтобы сделать его совместимым с HTML-валидатором. Вот представляет собой список некоторых возможных имен директив: ng: bind, ng-bind, ng_bind, x-ng-bind и data-ng-bind.

Оставляя их в полном объеме для практических целей. Это просто, что если вы запустите его через службу проверки html, он не пройдет как complliant.

Ответ 3

HTML5 имеет возможность встраивать атрибуты пользовательских данных во все элементы HTML

Эти новые атрибуты пользовательских данных состоят из двух частей:

Имя атрибута Имя атрибута данных должно иметь длину не менее одного символа и должно иметь префикс "data-". Он не должен содержать заглавных букв.

Значение атрибута Значение атрибута может быть любой строкой.

<li data-spacing="30cm" data-sowing-time="February to March">Celery</li>

источник: http://html5doctor.com/html5-custom-data-attributes/

Ответ 4

Нашел разницу при использовании с формой и без нее.

Когда мой элемент находится в форме, они действуют одинаково.

Когда я использую data-ng-click для элемента, не входящего в форму, событие Click не происходит.