在AngularJS中的http请求后重新加载视图
问题描述:
我想使用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),它不重新加载图。
答
那么,问题是从其他地方来:
有这是重装认为如果响应是一个错误的拦截器。
我把它作为一个答案,因为这是第二次拦截器导致我的问题,所以,如果有人来到这里,要知道你应该检查拦截器。
请提供表单的HTML。 – Baruch
用HTML更新了表单,虽然从其他元素调用函数仍然让我的表单重新加载。 – fksr86
您是否尝试过在按钮上使用ng-click而不是使用ng-submit?对不起,不知道这是否是你通过从其他元素调用函数的意思。 **编辑**如果窗体不重新加载200,也许它必须处理未被捕获的错误?尝试添加一个'.catch'。 – Baruch