в моем коде у меня есть Factory с ng.resource:
.factory('company', function($resource){
return $resource(appHelper.apiPath('auth/company/info'), {}, {
update: {
method: "PUT"
}
});
});
Если я отправлю форму в своем контроллере, все будет хорошо работать, если api даст положительный ответ. В случае ошибки api возвращает объект json с http 200. В моей функции обратного вызова я проверяю ответ:
$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 форма не очищается. Есть ли возможность предотвратить угловое изменение формы? Спасибо, лучший
Вы всегда можете сохранить его раньше и применить после обратного вызова.
$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;
}
$scope.saveCompanyForm = function (company) { var saved_company = company; console.log(saved_company); company.$update( function(data) { if(data.status == 'ERROR') { alert("error from api") company = saved_company; console.log(company); ...
В обоих случаях я получаю ответ от API: m {status: "ERROR", status_code: 400, $promise: d, $resolved: true}
не имею, почему
$scope.company_data = goliathCompanyService.get();
И в моей форме:ng-submit="companyEditForm.$valid && saveCompanyForm(company_data)"