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

Различия между ng-submit и ng-click

В angularjs мне интересно, какие различия между ng-submit и ng-click? В частности, плюсы и минусы каждого и того, когда вы должны это делать или нет? Благодарю!
** EDIT **
Я посмотрел на это немного больше, но мне все еще интересно, что (если есть) преимущество использования ng-submit? Не могли бы вы использовать ng-click вместо всех ng-submits? Это вызовет проблемы? Еще раз спасибо!

4b9b3361

Ответ 1

Директива ngSubmit связывается с отправить событие в браузере, которое запускается при отправке формы.

Из MDN:

Обратите внимание, что submit запускается только на элементе формы, а не на кнопке или в сообщении. (Формы отправляются, а не кнопки.)

Итак, вы можете использовать его, чтобы отправить форму регистрации пользователя или что-то в этом роде.

С другой стороны, директива ngClick может применяться к любому элементу.

Из источник:

Директива ngClick позволяет указать пользовательское поведение, когда элемент щелкнут.

Используйте его, чтобы позволить вашему пользователю взаимодействовать со своей страницей каким-либо образом, кроме как отправить форму. Возможно, нажмите кнопку "предыдущий" или "следующий" пейджер, или, возможно, карту или что-то еще.

Ответ 2

Angular предотвращает действие по умолчанию (отправка формы на сервер), если только элемент не имеет действие, действие данных или x-action сильные > атрибуты. Таким образом, при использовании angular с формами без этих атрибутов ng-click и ng-submit можно использовать для указания метода javascript для вызова. вы можете получить все входные значения в области видимости из-за двухстороннего свойства привязки данных angular. Не могли бы вы использовать ng-click вместо всех ng-submits? Это вызовет любые проблемы?
его можно использовать, но при использовании ng-click он не учитывает атрибуты ввода html (как требуется, min-max, maxlength) и немедленно выполняет тело метода.

Ответ 3

Моя любимая причина использования ng-submit заключается в том, что она позволяет вам нажимать клавишу <Enter>, когда вы фокусируетесь на ввод формы и т.д., и форма будет отправлена. (Предположим, что у вас есть кнопка type="submit" в форме.)

Его более дружественная клавиатура и удобство доступа, чем наличие кнопки ng-click на кнопке, потому что с помощью ng-submit пользователь может нажать кнопку отправки или нажать <Enter>.

Ответ 4

Если мы хотим, чтобы форма не была отправлена, когда она недействительна, вместо кнопки ng-click на кнопке мы будем использовать директиву ng-submit в самой форме

    <div class="row">
        <form name="adduser" ng-submit="AddUser(adduser.$valid)">                   
            <div id="name-group" class="form-group-lg">
                <input type="text"
                       required
                       name="name"
                       ng-model="userfullName"
                       class="form-control"
                       placeholder="Full Name">
            </div>

В ng-submit мы вызываем функцию AddUser из контроллера с параметром formname. $valid. Эта функция отправки будет вызываться только в том случае, если форма действительна или, другими словами, все введенные пользователем формы действительны. Имейте в виду, что в этом случае from не будет отправлен, если форма недействительна.

Когда мы используем ng-click, форма будет отправлена, даже если она недействительна. Два наблюдения для ng-click следующие:

Мы смогли отправить форму, даже если форма недействительна Для недопустимых входов значение было установлено на undefined в контроллере

Ответ 5

ng-submit, связанный с формами, это событие срабатывает при отправке формы. Где, когда ng-click может работать без отправки формы