2017-06-02 69 views
0

我想使用POST方法將數據提交給API,而無需重新加載視圖。無論成功還是錯誤,我的視圖在運行後都會重新加載。在AngularJS中的http請求後重新加載視圖

我使用這個功能,將數據提交到API:

$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; 
    }); 
}; 

它使用以下服務:

.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; 
}); 

這裏的HTML表單。

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

表單運行得很好,它不提交頁面。只是視圖重新加載。

如何避免重新加載視圖?


UPDATE

如果請求成功(狀態= 200),它不重新加載圖。

+1

請提供表單的HTML。 – Baruch

+0

用HTML更新了表單,雖然從其他元素調用函數仍然讓我的表單重新加載。 – fksr86

+0

您是否嘗試過在按鈕上使用ng-click而不是使用ng-submit?對不起,不知道這是否是你通過從其他元素調用函數的意思。 **編輯**如果窗體不重新加載200,也許它必須處理未被捕獲的錯誤?嘗試添加一個'.catch'。 – Baruch

回答

0

那麼,問題是從其他地方來:

有這是重裝認爲如果響應是一個錯誤的攔截器。

我把它作爲一個答案,因爲這是第二次攔截器導致我的問題,所以,如果有人來到這裏,要知道你應該檢查攔截器。