2017-11-18 2 views
3

Ich habe durch eine Reihe von Fragen zu diesem Thema gegangen, aber keiner löste mein Problemng-SUBMIT zweimal in Winkelform genannt

ich ein Formular verwenden, in der zwei Typ-Taste Aufruf dieselbe Funktion einreichen. Eine Schaltfläche sendet eine zusätzliche Variable mit ihr auf ng-click. Wenn ich einreiche, wird meine Funktion zweimal aufgerufen.

ich einen Ansatz verwende sagte in der zweiten Antwort von this question (meist abgestimmt)

ich nicht Controller als ng-Controller in HTML enthalten sind,

<form ng-submit="SaveContent(Form)"> 
    <button type="submit">Save</button> 
    <button type="submit" ng-click="Data.IsSent = true">Save & Send</button> 
</form> 

Wie dieses Problem umgehen?

+0

Keine genügend Informationen zu beantworten. – dfsq

+0

@dfsq Was mehr Informationen benötigt? – siproxin

+0

Die Frage, auf die Sie verweisen, hat keine zwei Schaltflächen mit type = 'submit'. Einer ist ein einfacher Knopf. Versuchen Sie das zu ändern. –

Antwort

1

Die Winkelform docs gibt es als

Wenn ein Formular ein oder mehr Eingabefelder hat, und eine oder mehr Tasten oder input [type = Senden] then in eines der Eingabefelder ein Schlagen wird Auslöser der Click-Handler auf den ersten Knopf oder input [type = einreichen] (ngClick) und einen einreichen Handler an der einschließenden Form (ngSubmit)

eingefügt ich den Code in Beispiel unten und es verhält sich genau wie es ist im Dokument angegeben s und nur einer einreichen (die erste) ausgeführt wird, wenn das Formular abschicken

angular.module("app",[]).controller("myCtrl",function($scope){ 
 

 
$scope.Data ={}; 
 
$scope.Data.IsSent = false; 
 
$scope.SaveContent = function(form){ 
 
if($scope.Data.IsSent){ 
 
    alert('submitted- and ngclick is invoked'); 
 
    }else{ 
 
    alert('submitted'); 
 
    } 
 
    $scope.Data.IsSent = false; 
 
}; 
 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 

 
<div ng-app="app" ng-controller="myCtrl"> 
 

 
<form ng-submit="SaveContent(Form)"> 
 
    <input type="text" name="text1"/> 
 
    <button type="submit">Save</button> 
 
    <button type="submit" ng-click="Data.IsSent = true">Save & Send</button> 
 
</form> 
 

 
</div>

Verwandte Themen