为给定表单中的嵌套组定义重置对象

时间:2014-05-21 22:36:50

标签: json forms angularjs

我正在创建一个具有嵌套组的表单。我正在使它具有嵌套组,因为它需要返回具有嵌套值的JSON对象。

我必须返回的JSON示例(伪代码)我无法复制实际代码存在气隙:

{"Treats": [
  {"id": 1, "type" : "softcandy", "expired" : false,
   "CandyBars":{"name":"mars", "weight":"2oz", "price":"1.00"},
   "ChewingGum":{"name":"superbubble", "weight":".05oz", "price":".50"},
   "SaltTaffy":{"name":"goofyLucyTaffy", "weight":"1lb","price":"17.00"}
  ]
}

我似乎无法获取ng-model和form id,名称变量,以便通过重置按钮和随后的提交按钮来识别它们。

我正在尝试这样的重置方法:

    $scope.Treats = {
        id: "",
        type: "softcandy",
        expired: false,
        CandyBars: {
          name: "",
          weight: "",
          price:  ""
        },
        ChewingGum: {
          name: "",
          weight: "",
          price:  ""
        },
        SaltTaffy: {
          name: "",
          weight: "",
          price:  ""
        }
    };

    var initTreats = angular.copy($scope.Treats);

   $scope.resetTreats = function(){
       $scope.Treats = angular.copy($scope.initTreats);
   }

来自伪html的简短片段......可能还需要30分钟才能将所有html放在这里。 .Hopefully你明白了。

<DIV class="action-view-body form-horizontal css-form" data-ng-form="junkfood" data-novalidate data-role="form">
  <div class="form-group">
   <label class="control-label" for="id" required>ID: </label>
   <input type="text" id="id" name="id" class="form-control" ng-model="Treats.id"></input>
  </div>
</DIV> 

然而,当我点击重置时,它只会重置输入到id,type和expired表单变量中的值,并且它不会清除为这些字段显示的任何验证错误消息。救命! (已编辑..我确实将initTreats作为var ..拼写错误,试图将其转换为伪代码..谢谢!)

1 个答案:

答案 0 :(得分:0)

感谢任何试图帮助我的人。事实证明我的问题是引用在我的一个表单字段定义中没有在控制器中定义的约束。我评论说引用..现在表单完全重置。