2015-10-05 48 views
2

這是我的HTML /角:AngularJS - 提交空表單字段爲空,而不是完全忽略它

<form ng-submit="ctrl.add()"> 
    <div class="form-group"> 
     <label>Username</label> 
     <input type="text" ng-model="ctrl.user.username"> 
    </div> 

    <div class="form-group"> 
     <label>Password</label> 
     <input type="password" ng-model="ctrl.user.password" required> 
    </div> 

    <div class="form-group"> 
     <label>Email</label> 
     <input type="email" ng-model="ctrl.user.email" required> 
    </div> 

    <div class="form-group"> 
     <label>Country</label> 
     <input type="text" ng-model="ctrl.user.userextended_set.country" ng-trim="false"> 
    </div> 
    <input type="submit" value="Register" ng-disabled="myForm.$invalid"> 
</form> 

的問題是,當用戶點擊提交不填寫的「用戶名」和「國家」部分,AngularJS將字符串中的「email」和「password」作爲鍵發送到後端的JSON對象。字典中不存在「用戶名」和「國家/地區」鍵(從現在開始,將「Country」字段稱爲「userextended_set」,因爲它是調用ng模型中的字段)。我如何讓AngularJS不完全忽略它,並至少發送一個值爲「null」的密鑰?編輯:這很奇怪,因爲即使我在「userextended_set」字段中有ng-trim =「false」,如果我最初提交表單時沒有填充「userextended_set」中的任何內容,AngularJS不會發送「userextended_set」作爲鍵入JSON對象。但是,如果我在「userextended_set」中鍵入內容然後刪除它,然後點擊提交,JSON將「userextended_set」作爲關鍵字發送。

+0

可能與:http://stackoverflow.com/a/25230155/2495283 – Claies

+0

我相信這是重寫這個沒有標準的方式。因爲這個,你在後端有問題嗎?你的後端堆棧是什麼?我使用的是Spring MVC,幸運的是它自動填充了空缺的屬性。我的建議是:對待它的服務器端。 – wdoering

回答

0

嘗試添加到輸入字段屬性:

ng-trim="false"