AngularJS v1.5.5重置表单不适用于无效输入字段

AngularJS v1.5.5重置表单不适用于无效输入字段,angularjs,angularjs-material,Angularjs,Angularjs Material,我有下面的代码(或查看),我尝试重置表单并清除每个表单的所有输入字段 使用AngularJS 1.2.1版运行良好!但在我的应用程序中,我使用的是版本1.5.5,因为我有其他库,用于分离标签中的嵌套表单,这些标签使用的是需要此版本的material framework 当任何字段无效时,重置不按预期工作,这些字段保持不变以清除 当我单击“重置”按钮时,还有另一种清除所有字段(嵌套表单)的方法吗 angular.module(“main”,[]) .控制器(“寄存器”,功能($scope){ $

我有下面的代码(或查看),我尝试重置表单并清除每个表单的所有输入字段

使用AngularJS 1.2.1版运行良好!但在我的应用程序中,我使用的是版本1.5.5,因为我有其他库,用于分离
标签中的嵌套表单,这些标签使用的是需要此版本的material framework

当任何字段无效时,重置不按预期工作,这些字段保持不变以清除

当我单击“重置”按钮时,还有另一种清除所有字段(嵌套表单)的方法吗

angular.module(“main”,[])
.控制器(“寄存器”,功能($scope){
$scope.data={
A:{},
B:{}
};
$scope.reset=函数(形式){
形式:$setPristine();
};
});

表1-表格A:
A1:
A2:
重置

A.$pristine={{A.$pristine}} A.$valid={{A.$valid}}

表2-表格B: B1: 地下二层 重置
B.$pristine={{B.$pristine}} B.$valid={{B.$valid} 数据: {{data}json}
这是因为
ng model
通过$scope.data中的引用绑定到
A
B
对象。如果从
ng单击中删除
$scope.data.A=null
,并重置对象而不创建新对象,则该操作有效:


你能提供一个复制问题的提琴吗?检查这个,它使用AngularJs 1.4.8并重置无效输入字段:谢谢,你的更改确实有效,但我将尝试如下转换:当用户单击表单重置按钮时,我只想重置“一个表单”。有一种方法可以从“reset”函数内的“form”参数中获取“data.a”变量(或分别是“data.B”),以避免使用switch-case?new update:(最终我认为没有办法避免使用switch)您可以这样键入表单名称:或者更简单,传入需要作为第二个参数显式重置的模型:
$scope.reset = function (form)
{
  // don't change the reference to A
  // $scope.data.A = {} wont work!!
    angular.extend($scope.data, {A:{A1:'',A2:''}, B:{B1:'',B2:''}});
    form.$setPristine();
};