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」作爲關鍵字發送。
可能與:http://stackoverflow.com/a/25230155/2495283 – Claies
我相信這是重寫這個沒有標準的方式。因爲這個,你在後端有問題嗎?你的後端堆棧是什麼?我使用的是Spring MVC,幸運的是它自動填充了空缺的屬性。我的建議是:對待它的服務器端。 – wdoering