【发布时间】:2015-08-21 19:23:34
【问题描述】:
据我所知,如果表单字段为空,AngularJS 不会序列化它。但是,我需要这些字段在生成的 JSON 中,即使它们是空的。我正在尝试查询该 JSON,如果字段描述符不存在,它将失败。关于如何让 AngularJS 做到这一点的任何提示?
在下面的示例中,如果您在 name 字段中输入了“John”,而 optionalval 字段中没有任何内容,则形成的 json 就是这个 {name: John}。但我希望它像这样 {name:'John', optionalval:''}。这是在可选字段可能没有任何值的“创建新”表单的情况下。但是,无论字段是否有值,都需要发送。
<!doctype html>
<html>
<head>
<title>Serialize Test</title>
<script src="js/angular.min.js"></script>
<script>
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope, $http) {
$scope.addnew = function(){
$http.put('/newthing.json', JSON.stringify($scope.item))
.success(function(){
})
.error(function(){
});
};
});
</script>
</head>
<body ng-app="myApp" ng-controller="myCtrl">
<label for="name">Name:</label>
<input type="text" id="name" ng-model="item.name" required>
<label for="optionalval">Don't put anything here:</label>
<input type="text" id="optoinalval" ng-model="item.optionalval">
<button ng-click="addnew()">Serialize</button>
</body>
</html>
【问题讨论】:
-
如果您正确使用
ng-model,这应该不是问题。提供一些代码。我们无法解决我们看不到的问题 -
试试这个方法:var dataJSON = { field1 : '1', field2 : ''}, $http{ data : JSON.stringify(dataJSON)
-
将模型附加到您的输入中,您应该没问题。请出示代码。
-
感谢您的回复。我添加了一个代码示例来帮助解释这个问题。
标签: json angularjs forms serialization