【发布时间】:2017-06-03 05:27:10
【问题描述】:
我想在不重新加载视图的情况下使用 POST 方法向 API 提交数据。无论成功还是错误,我的视图都会在运行后重新加载。
我正在使用此函数向 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>
表单运行得很好,它没有提交页面。只是视图被重新加载。
如何避免重新加载视图?
更新
如果请求成功(状态 = 200),则不会重新加载视图。
【问题讨论】:
-
请提供表单的 HTML。
-
更新了表单的 HTML,尽管即使从其他元素调用该函数,我仍然会重新加载我的表单。
-
您是否尝试过在按钮上使用
ng-click而不是使用ng-submit?抱歉,不确定这是否是您从其他元素调用该函数的意思。 EDIT 如果表单在 200 时没有重新加载,可能与未捕获的错误有关?尝试添加.catch。
标签: javascript angularjs