0

在我的代码中,我有一个带有 ng.resource 的工厂:

.factory('company', function($resource){
return $resource(appHelper.apiPath('auth/company/info'), {}, {
    update: {
        method: "PUT"
    }
});
});

如果我在我的控制器中提交表单,只要 api 给出肯定的响应,一切都可以正常工作。如果出现错误,api 返回一个带有 http 200 的 json 对象。在我的回调函数中,我验证响应:

$scope.saveCompanyForm = function (company) {
        company.$update(
            function(data) {
                    if(data.status == 'ERROR') {
                        alert("error from api")


                    } else {
                        alert("no error")
                    }
            }, function(error) {
                    alert("error")
    }

问题是如果 api 返回错误,则表单已清除。如果 API 响应带有 http 500 或 http 404,则表单不会被清除。有没有可能防止角度重置表格?非常感谢

4

1 回答 1

1

您始终可以在回调之前保存并在回调之后应用。

$scope.saveCompanyForm = function (company) {

    var saved_company = company;

    company.$update(
        function(data) {
                if(data.status == 'ERROR') {
                    alert("error from api")
                    company = saved_company;

                } else {
                    alert("no error")
                    company = saved_company;
                }
        }, function(error) {
                alert("error")
                company = saved_company;
}
于 2016-07-27T14:46:39.330 回答