Sto usando AngularJS e ho un modulo in cui l'utente può inserire i dati. Alla fine del modulo voglio avere due pulsanti, uno per "salvare" che salverà e andare su un'altra pagina, e un altro pulsante con l'etichetta "salva e aggiungi un altro" che salverà il modulo e poi lo ripristinerà - permettendo loro di inserisci un'altra voce.Come gestire più pulsanti di invio in un modulo utilizzando Angular JS?
Come ottengo ciò in modo angolare? Stavo pensando che potrei avere due pulsanti di invio con i tag ng-click, ma sto usando ng-submit sull'elemento del modulo. C'è qualche ragione per cui ho bisogno di usare ng-submit - Non riesco a ricordare perché ho iniziato a usare quello invece di ng-clic sul pulsante.
Il codice sembra qualcosa di simile:
<div ng-controller="SomeController">
<form ng-submit="save(record)">
<input type="text" name="shoppingListItem" ng-model="record.shoppingListItem">
<button type="submit">Save</button>
<button type="submit">Save and Add Another</button>
</form>
</div>
E nel controller SomeController
$scope.record = {};
$scope.save = function (record) {
$http.post('/api/save', record).
success(function(data) {
// take action based off which submit button pressed
});
}
Se non è importante, allora funzionerà in entrambi i casi. ngSubmit è utile solo se vuoi il comportamento di invio per invio (o se hai molti pulsanti di invio, tutti condividono lo stesso comportamento, a differenza del tuo scenario). –
Il secondo pulsante non è un pulsante normale perché i pulsanti predefiniti per type = "submit" è necessario aggiungere type = "button" o eseguirà sia l'azione di invio che l'azione di ng-clic. Nel mio browser preferito è stato inviato il tipo predefinito per un pulsante, ma poi ho controllato due volte e questa fonte dice che i diversi browser potrebbero avere diversi tipi di default. http://www.w3schools.com/tags/att_button_type.asp – Zergleb
Questo metodo non sarebbe la soluzione più semantica. Sarebbe meglio usare due pulsanti type = "submit" e poi usare un ng-click con un assegnamento per impostare un var di scope per poi accenderlo nel controller. In questo modo, il modello di evento predefinito verrebbe comunque applicato. – dmcqu314