Ng-submit-und ng-klicken Sie feuert viele Male, die ich Ionischen iPhone-app
Ich versuche das ionic framework und es sieht wirklich nett. Allerdings habe ich ein problem mit der form Vorlage: form feuert zweimal. Erst wenn der submit-button gedrückt wird, und dann, wenn ich nur Tippen Sie irgendwo auf dem Bildschirm. Dies geschieht sowohl im xcode-simulator und auf meinem iphone 4gs.
Dies ist, was ich getan habe:
Ich installieren Sie den oberen Bereich der Vorlage mit: ionic start myApp oberen Bereich.
Ich dann fügen Sie einfach dieses Formular, um die tab-dash Vorlage:
<form ng-submit="createTask(task)">
<div class="list">
<label class="item item-input">
<input type="text" placeholder="What do you need to do?" ng-model="task.title">
</label>
</div>
<div class="padding">
<button type="submit" class="button button-block button-positive">Create Task</button>
</div>
</form>
Und in meinem controller habe ich Sie einfach haben:
$scope.createTask = function(task) {
alert(task.title);
};
Dies ist die einzige änderung, die ich gemacht, um die starter-Vorlage und noch das Formular sendet doppelt. Ich habe keine Ahnung, warum. Würde wirklich zu schätzen einige Anleitungen hier!
- Ich bin gerade auch mit demselben Problem... Hat jemand die Lösung gefunden?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Entfernen Sie das type="submit" aus-Taste und entfernen Sie die ng-submit aus der form und ziehen Sie es wie ein ng-klicken Sie auf die Schaltfläche selbst.
So sollten Sie am Ende mit
Möglich ist dies, weil, wenn die ng-click aufgerufen wird, gibt es zwei Anrufe ,einen von Winkel-und andere durch die Ionische .Ionische und Winkel kommt als bundle bei der Arbeit mit Ionischen Projekt.
Könnten Sie versuchen diese Methode.
1) Ionische und angular-javascript-getrennt in Ihren index.html
statt (einschließlich der Ionischen und Winkel in eine javascript-Datei)
ionic.bundle.min.js
Verwendung als
ionic.min.js
angular.min.js
2) Alternativ können Sie erstellen eine Richtlinie des eigenen statt der ng-klicken Sie wie im Bild unten gezeigt.
davor Gehören angular-touch.js und Spritzen ngTouch als ein Modul in Ihrer app in app.js
app.Richtlinie('myclick', function() {
});
Hoffe, das hilft.
in Ihrem controller
hinzufügen
$scope.task= {};
init