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> 

そして、私がリクエスト送信てるかのthats:

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 
     } 
    }; 
関連する問題