O ile mogę stwierdzić, AngularJS nie szereguje pola formularza, jeśli jest puste. Ale potrzebuję tych pól do wygenerowania JSON, nawet jeśli są puste. Próbuję zapytać o to JSON, a zakończy się niepowodzeniem, jeśli nie ma tam deskryptorów pól. Wszelkie wskazówki, jak uzyskać AngularJS, aby to zrobić?Jak wymusić na AngularJS serializację pustych pól formularzy?
W poniższym przykładzie, jeśli wpisałeś "Jan" w polu nazwy i nic w polu optionalval, to json, który jest utworzony, to {imię: John}. Ale chciałbym, żeby to było takie {imię: 'John', optionalval: ''}. Jest tak w przypadku formularza "utwórz nowy", w którym pola opcjonalne mogą nie mieć żadnych wartości. Ale pola muszą być wysłane, czy mają wartości, czy nie.
<!doctype html>
<html>
<head>
<title>Serialize Test</title>
<script src="js/angular.min.js"></script>
<script>
\t \t \t var app = angular.module('myApp', []);
\t \t \t app.controller('myCtrl', function($scope, $http) {
\t \t \t \t $scope.addnew = function(){
\t \t \t \t \t $http.put('/newthing.json', JSON.stringify($scope.item))
\t \t \t \t \t \t .success(function(){
\t \t \t \t \t \t })
\t \t \t \t \t \t .error(function(){
\t \t \t \t \t \t });
\t \t \t \t };
\t \t \t });
</script>
</head>
<body ng-app="myApp" ng-controller="myCtrl">
\t \t <label for="name">Name:</label>
\t \t <input type="text" id="name" ng-model="item.name" required>
\t \t <label for="optionalval">Don't put anything here:</label>
\t \t <input type="text" id="optoinalval" ng-model="item.optionalval">
\t \t <button ng-click="addnew()">Serialize</button>
</body>
</html>
nie powinno być problemem, jeśli używasz 'NG-model' prawidłowo . Podaj kod. Nie możemy rozwiązać problemu, którego nie możemy zobaczyć: – charlietfl
Spróbuj w ten sposób: var dataJSON = {field1: '1', field2: ''}, $ http {data: JSON.stringify (dataJSON) –
Dołącz model do swoich danych wejściowych i powinieneś być w porządku. Pokaż kod, proszę. – ajmajmajma