In angularjs frage ich mich, was die Unterschiede zwischen ng-submit und ng-Klick sind? Konkret Vor-und Nachteile von jedem und wann sollten Sie das eine oder andere? Vielen Dank! ** EDIT **
Ich habe in diesem ein bisschen mehr geschaut, aber ich frage mich immer noch, was (wenn überhaupt) der Vorteil ist mit ng-submit? Könnten Sie einen ng-klick anstelle aller ng-submits verwenden? Würde dies zu Problemen führen? Danke noch einmal!Unterschiede zwischen ng-submit und ng-click
Antwort
Die ngSubmit-Direktive bindet an die submit event im Browser, der ausgelöst wird, wenn ein Formular gesendet wird.
Von MDN:
Beachten Sie, dass nur auf das Formularelement gebrannt besteht, erfolgt, nicht die Taste oder Eingabe einreichen. (Formulare werden gesendet, keine Schaltflächen.)
Sie können damit ein Benutzeranmeldungsformular oder etwas Ähnliches senden.
Auf der anderen Seite kann die ngClick-Direktive für jede Art von Element gelten.
Von source:
Die ngClick Direktive erlaubt Ihnen individuelle Verhalten angeben, wenn ein Element geklickt wird.
Verwenden Sie diese Option, damit Ihr Benutzer auf andere Weise als mit dem Senden eines Formulars mit Ihrer Seite interagieren kann. Vielleicht, um auf einen "vorherigen" oder "nächsten" Pager-Knopf oder vielleicht eine Karte oder etwas zu klicken.
ng-send mit Formularen verknüpft, wird dieses Ereignis ausgelöst, wenn Sie das Formular senden. Wo als ng-click kann ohne Formular funktionieren senden Ereignis
Angular verhindert, dass die Standardaktion (Formularübermittlung an den Server), wenn nicht das Element Aktion, Daten-action oder x-action specified.So Attribute, wenn sie mit diesen Formen ohne atributes ng Winkel Verwendung -click und ng-submit kann verwendet werden, um anzugeben, welche Javascript-Methode aufgerufen werden soll.In jedem Aufruf können Sie alle Eingabewerte in einem Bereich abrufen, da die bidirektionale Datenbindungseigenschaft angular ist. Könnten Sie einen ng-Klick anstelle aller ng-Submits verwenden? Würde dies zu Problemen führen?
Es kann verwendet werden, aber wenn Sie ng-click verwenden, werden HTML-Eingabeattribute (wie erforderlich, min-max, maxlength) nicht berücksichtigt und der Methodenkörper sofort ausgeführt.
Danke, das beseitigt das Missverständnis. Um Formulare abschicken zu können, wird bevorzugt ng-submit verwendet. Für andere Interaktionen ist ng-click zu verwenden. –
'bei der Verwendung von ng-click werden HTML-Eingabeattribute (wie erforderlich, min-max, maxlength) nicht berücksichtigt und der Methodenkörper wird sofort ausgeführt ............ +1 zur Entmystifizierung! – TheCrazyProgrammer
Mein Lieblingsgrund für die Verwendung von ng-submit
ist, dass Sie die Taste <Enter>
drücken können, während Sie auf einen Formulareingang usw. fokussiert sind und das Formular abschickt. (Vorausgesetzt natürlich, dass Sie haben einen Knopf von type="submit"
in Form.)
Seine mehr Tastatur freundlich und Zugänglichkeit freundlicher als ng-click
mit auf eine Schaltfläche, denn mit ng-submit
kann ein Benutzer auf den Absenden-Button klicken oder sie können drücken <Enter>
.
Ich habe gerade dies getestet, und es scheint, dass die Funktion durch Drücken der Eingabetaste in beide Richtungen ausgeführt wird. Ich dachte, das wäre auch ein Vorteil von ngSubmit, aber von meinem Test scheint er jetzt genauso zu handeln. – bobbyz
Verzeihen Sie, aber ich verstehe nicht, wie die Funktion ausgeführt werden kann, ohne 'ng-submit' zu haben. Durch das Platzieren des Attributs 'ng-submit' in dem Formular können Sie die auszuführende Funktion definieren, wenn die Taste '
Wenn Sie den Knopf "Type" zum Senden ändern, macht es das Gleiche (<= Horrble chrome auto correct.) ... – TGarrett
Wenn wir die Form wollen nicht vorgelegt werden, wenn es ungültig ist, dann anstelle von ng-Klick auf den Button, werden wir ng einreichen Richtlinie über die Form selbst
<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>
Im ng- verwenden Senden wir rufen eine Funktion AddUser vom Controller mit einem Parameter formname. $ valid. Diese Submit-Funktion wird nur aufgerufen, wenn das Formular gültig ist oder alle Benutzereingaben des Formulars gültig sind. Beachten Sie, dass in diesem Fall von nicht gesendet werden würde, wenn das Formular nicht gültig ist
Wenn wir ng-klicken, wird das Formular gesendet, auch wenn es ungültig ist. Zwei Beobachtungen für ng-Klick sind wie folgt:
Wir konnten das Formular abzuschicken, selbst wenn Form Für die ungültigen Eingaben nicht gültig war, wurde der Wert auf undefiniert in der Steuerung
- 1. Bash Unterschiede zwischen {} und()?
- 2. Unterschiede zwischen Go und Cython
- 3. Unterschiede zwischen Mustererkennung und Vereinheitlichung?
- 4. Unterschiede zwischen ActionExecutingContext und HttpActionContext
- 5. Unterschiede zwischen memchr() und strchr()
- 6. Unterschiede zwischen Thread.sleep() und TimeUnit.SECONDS.sleep()
- 7. Unterschiede zwischen Minimalschlüssel und Kandidatenschlüssel?
- 8. Unterschiede zwischen Coroutines und `goto`?
- 9. Unterschiede zwischen Log und Logger?
- 10. Unterschiede zwischen _redirect ('*/* /') und _redirect ('*/*')
- 11. Unterschiede zwischen BaseHttpServer und wsgiref.simple_server
- 12. Unterschiede zwischen schwach und unsafe_unreated
- 13. Unterschiede zwischen RestKit und AFIncrementalStore
- 14. Unterschiede zwischen BasicRenderEngine und LazyRenderEngine?
- 15. Unterschiede zwischen AForge und OpenCV
- 16. Unterschiede zwischen ado und bde
- 17. Unterschiede zwischen OPC und DDS?
- 18. Unterschiede zwischen mousemove und touchnove
- 19. Unterschiede zwischen Boost.Coroutine und Boost.Coroutine2
- 20. Unterschiede zwischen Datenattributen und Methodenattributen
- 21. Unterschiede zwischen char * und String
- 22. Unterschiede zwischen Funktoren und Endofunkern
- 23. Unterschiede zwischen JPA und JPA2
- 24. Unterschiede zwischen RxJava1 und RxJava2
- 25. Unterschiede zwischen MPI_Scatter und MPI_Bcast
- 26. Unterschiede zwischen org.apache.log4j.RollingFileAppender und org.apache.log4j.rolling.RollingFileAppender
- 27. Unterschiede zwischen Coq und Agda
- 28. Unterschiede zwischen NoClassDefFoundError und ClassNotFoundException?
- 29. Unterschiede zwischen scipy.sparse.linalg.lsmr und scipy.sparse.linalg.lsqr
- 30. Unterschiede zwischen IE6 und IE8
Beide sind nur Wrapper um die nativen Browserereignisse. – dnc253
Hier ist ein interessanter Beitrag, der wahrscheinlich helfen wird, dieses Problem zu entmystifizieren http://bit.ly/1TUTAAz – Grateful