2016-04-24 5 views
0

Я отправляю запрос POST с угловым форматом. У меня есть поля ввода опций и когда я что-то там набираю и удаляю, то в моем запросе у меня есть это поле, содержащее «». Так ли это должно быть?Отправка запроса угловыми пустыми элементами по запросу

Вот как моя форма внешний вид:

<label class="col-md-2 col-xs-2 my-label" for="contactFirstName">Imię</label> 
     <div class="col-md-3 col-xs-3"> 
     <input type="text" class="form-control" id="contactFirstName" name="contactFirstName" 
       placeholder="Imię" 
       ng-model="loan.newLoan.contactPerson.firstName" > 
     </div> 

И вот как я посылаю запрос:

function create() { 
return RequestFactory.save({id1:'loans', id2:'create'},vm.newLoan, 
    function() { 
     MessageFactory.setSuccess({show:true, msg:'success'}); 
     $state.reload('loan.new'); 
    }, function(response){ 
     vm.isError = true; 
     ErrorFactory.errorHandler(vm.errorMessages, response); 
    }); 
} 

И при отправке, на мой запрос JSON с этим полем выглядит следующим образом:

{"firstName":""} 

Это нормально? Или не должно быть этого поля в запросе, если его пустое? Что мне делать с этим?

+0

Здравствуйте! Пожалуйста, примите мой ответ, если он решает вашу проблему. :) [Как принимает ответ?] (Http://meta.stackexchange.com/a/5235/170863) –

+0

Да, он решил это, спасибо. – luk1

ответ

1

Это нормально?

Да или нет, зависит от того, что ожидает ваш серверный сервис.

Вы можете удалить пустые поля в Угловом, делая что-то вроде

function create() { 
    var data = {}; 

    if (vm.newLoan.contactPerson.firstName) { 
     data.firstName = vm.newLoan.contactPerson.firstName; 
    } 

    RequestFactory.save({ id1: 'loans', id2: 'create' }, data, ...); 
} 

И вы должны сделать дополнительную проверку в службе бэкэнда, чтобы удалить пустые поля, если вы не хотите, чтобы сохранить его. Никогда не доверяйте данным, отправленным с клиента, даже если вы проверяете данные в JavaScript. Всегда выполняйте дополнительную проверку кода сервера.

1

Следовательно, ваше поле ввода html не требуется, оно отлично. Надеемся, что ваше поддерживаемое обслуживание также является необязательным полем. Если это обязательное поле, вам необходимо проверить, как показано ниже, когда вы нажимаете кнопку Save.

Это просто пример:

Html

<button type="submit" class="btn btn-primary blue" ng- 
click="vm.save(yourFormName.$valid)"> Save</button> 

JS

//to save 
    vm.save = function (isValid) { 
     if (isValid) { 
      //fires save method here 
     } 
    };