1

このような角度のあるフォームがある場合

<form name="myForm">
  <input type="text" required ng-model="field1" />
  <input type="text" ng-model="field2" />
</form>

モデルにアクセスすると、値を持つフィールドのみが保持されるため、両方のフィールドに値がある場合、json は {"field1":"value1","field2":"value2"} になります。field1 のみに値がある場合、json は {"field1":"value1"} になります。モデルの空のフィールドを null 値で保持するように Angular に指示できますか?

アップデート:

私のコントローラーは以下のようになります。サーバーからjsonとしてデータをロードしています。データがサーバーから来るとき、私はこれを取得します}。

var myApp = angular.module('myApp', []);
myApp.controller('contentEditController', ['$scope', '$http',
  function ($scope, $http) {

      $scope.saveContent = function () {
          $http.post("/api/ContentData", $scope.formdata);
      };

      $scope.loadContent = function (contentId) {
          $http.get("/api/ContentData/" + contentId)
              .success(function (response) {
                  $scope.formdata = response;
               });
      }

  }]);

そのため、サーバーから取得したときに値があったフィールドは、空として返されません。

-マティアス

4

2 に答える 2

3

コントローラーでスコープの値を初期化し、

.controller('formcontroller', [ '$scope', function($scope){
  $scope.field1 = "";
  $scope.field2 = "";
})];
于 2015-01-07T07:45:32.787 に答える
1

これを行う適切な方法は、変数を初期化することです。コントローラーにある必要があります

$scope.field1 = ""
$scope.field2 = ""

または、より大まかな方法​​は ng-init を使用することです (可能であれば ng-init を使用しないようにしてください)

<input type="text" required ng-model="field1" ng-init="field1=''"/>
<input type="text" ng-model="field2" ng-init="field2=''"/>
于 2015-01-07T07:43:45.543 に答える