2016-03-24 6 views
1

Das Problem klicken:Erfrischend und Umleiten Seite nach Taste

Nach dem Klicken auf „Post jetzt“ mit ausgefülltem Formular modal noch auftaucht und wenn klicken „post jetzt“ wieder fügt es die gleichen Daten wieder und wieder.

Ich möchte das machen, nachdem alle Formular ausgefüllt ist und die Schaltfläche angeklickt wird, Seite aktualisiert und geht auf den Link mit der Beschreibung der Vorhersage.

Prediction.createPrediction($scope.prediction).then(function(ref) { 
      $toaster.pop('success', 'Prediction posted successfully.'); 
      $scope.prediction = { 
       player1: '', 
       player2: '', 
       winner: '', 
       venue: '', 
       date: '', 
       round: '', 
       description: '', 
       odd: '', 
       score: '', 
       status: 'open', 
       gravatar: '', 
       name: '', 
       poster: '' 
      }; 
      $location.path('/browse/' + ref.key()); 
     }); 

Link zur Anwendung: https://sportpredictions.firebaseapp.com/#/ (Prognosen der Veröffentlichung ist nur für angemeldete Benutzer)

Quellcode auf GitHub: https://github.com/NiR-IT/tennispredictions (Skripte/services/prediction.js, Scripts/controllers/Vorhersage. js, Ansichten/Teiltage/post.html).

+0

Sollen wir annehmen, dass das nicht funktioniert? Was ist los? – Lex

+0

Die Seite wird nach dem Klicken auf die Schaltfläche Senden in modal nicht aktualisiert. Also, wenn Sie das Modal manuell schließen und den Knopf "post prediction" erneut drücken, wird es Modal mit demselben, bereits ausgefüllten Formular geben. –

Antwort

1

Versuchen Sie Folgendes: Fügen Sie Ihrem Formular ein name="postForm" Attribut hinzu. Dadurch wird es in Ihrem Controller über $scope.postForm zugänglich machen und dann können Sie $scope.postForm.$setPristine() nennen, die alles auf dem Formular zurückgedreht werden - einschließlich aller Validierungsfehler usw.

P. S. Wirklich gut aussehende App!

+0

Wo genau sollte ich $ scope.postForm setzen. $ SetPristine()? Und auch Fehler in der Konsole "$ Toaster ist nicht definiert" (wenn ich auf "Senden" -Taste klicken. Danke, Lex :) –

+0

Sie injizieren 'Toaster' in Ihrem Controller, so dass Sie es ohne die $ anrufen müssen '. Ich würde den Aufruf zu $ ​​setPristine()' direkt nach Ihrem Toaster Nachricht. Sie können wahrscheinlich den Rest des Codes loswerden. – Lex

+0

So ist, dass jetzt passiert das gleiche, wenn jquery Code $ setzen ('#Button') klicken. (function() { location.reload(); }); Seite neu geladen, nachdem die Schaltfläche klicken, aber Datenbank ist nicht zu mit neuer Vorhersage aktualisiert; ( –

Verwandte Themen