2017-06-02 4 views
0

Ich möchte Daten an eine API senden, die POST-Methode verwendet, ohne die Ansicht neu zu laden. Ob Erfolg oder Fehler, meine Ansicht wird nach dem Ausführen neu geladen.Ansicht wird nach einer http-Anforderung in AngularJS erneut geladen

Ich verwende diese Funktion Daten an eine API einreichen:

$scope.addObject = function (data) { 
    Object.add(data).then(function (response) { 
     $scope.isSubmitting = false; 
     if (response !== null) 
      toaster.pop(response.status, response.status, response.message); 
     return false; 
    }); 
}; 

es verwendet den folgenden Service:

.factory('Object', function ($http, $rootScope) { 
    var object = {}, 
     url = $rootScope.apiUrl; 

    object.add = function (data) { 
     return $http({ 
      url: url + '/object/add', 
      method: 'POST', 
      params: data 
     }) 
     .then(function(response) { 
      return response.data; 
     }); 
    }; 

    return object; 
}); 

Hier ist der HTML-Code der Form.

<form class="object-form" ng-submit="addObject(objectData)"> 
    <select name="type" ng-model="objectData.type"> 
     […] 
    </select> 
    <button type="submit">OK</button> 
</form> 

Das Formular läuft gut, es übermittelt die Seite nicht. Nur die Ansicht wird neu geladen.

Wie kann ich das erneute Laden der Ansicht vermeiden?


UPDATE

Wenn Anforderung erfolgreich ist (Status = 200), ist es die Ansicht nicht neu laden.

+1

geben Sie bitte den HTML-Code für das Formular an. – Baruch

+0

aktualisiert mit HTML für das Formular, obwohl sogar die Funktion von anderen Elementen aufrufen, ich bekomme immer noch mein Formular neu geladen. – fksr86

+0

Haben Sie versucht, 'ng-click' auf der Schaltfläche anstelle von' ng-submit' zu verwenden? Entschuldigung, ich bin mir nicht sicher, ob Sie das gemeint haben, indem Sie die Funktion von anderen Elementen aus aufgerufen haben. ** EDIT ** wenn das Formular nicht auf 200 neu geladen wird, hat es vielleicht mit dem nicht gefundenen Fehler zu tun? Versuchen Sie ein '.catch' hinzuzufügen. – Baruch

Antwort

0

Also, das Problem von einem anderen Ort kommen würde:

Es war ein Abfangjäger, die die Sicht wurde Nachladen, wenn die Antwort ist ein Fehler aufgetreten.

Ich stelle es als eine Antwort, denn es ist das zweite Mal, dass ein Interceptor mir ein Problem verursacht, also, wenn jemand hier ankommt, erfahren Sie, dass Sie Abfangjäger überprüfen sollten.

Verwandte Themen