Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 如何清除动态ng重复表单字段_Angularjs_Forms_Ng Repeat - Fatal编程技术网

Angularjs 如何清除动态ng重复表单字段

Angularjs 如何清除动态ng重复表单字段,angularjs,forms,ng-repeat,Angularjs,Forms,Ng Repeat,问题:如何清除动态创建的ng repeatAngularJS表单字段?如果你能找到一个我没有找到答案的地方,我会很惊讶 背景:我让AngularJS通过服务将JSON拉入我的控制器。然后我使用scope为表单重复标签。我清理田地有困难。因为文字不能准确地告诉你我在这里做什么,所以基本的代码设置。我把它删减到几行 我尝试了旧的$scope.formName.inputName=“”和$scope.inputName=“”,但它们不起作用。有什么想法或方向吗 {{item.desc}} 清楚的

问题:如何清除动态创建的
ng repeat
AngularJS表单字段?如果你能找到一个我没有找到答案的地方,我会很惊讶

背景:我让AngularJS通过服务将JSON拉入我的控制器。然后我使用scope为表单重复标签。我清理田地有困难。因为文字不能准确地告诉你我在这里做什么,所以基本的代码设置。我把它删减到几行

我尝试了旧的
$scope.formName.inputName=“”
$scope.inputName=“”,但它们不起作用。有什么想法或方向吗


{{item.desc}}
清楚的
var-app=angular.module(“app”,[]);
应用控制器(“应用测试”,功能($scope){
$scope.currentInfo={
“属性”:[
{
“名称”:“账户”,
“描述”:“账户”,
},
{
“名称”:“FNAME”,
“描述”:“名字”,
“类型”:“VARCHAR”,
“验证”:“^[a-zA-Z\\s]+”
},
{
“名称”:“LNAME”,
“描述”:“姓氏”,
“类型”:“VARCHAR”,
“验证”:“^[a-zA-Z\\s]+”
},
{
“名称”:“MNAME”,
“描述”:“中间名”,
“类型”:“字符”,
“验证”:“^[a-zA-Z]+[1-9]+”
}
]
};
$scope.clearMe=函数(){
$scope.forminput=“”;
};
});

通过将forinput设置为对象并使用键创建唯一的模型,您正在重复单个
ngmodel=“forminput”
为每个对象使用唯一的
ngmodel=“forminput[item.desc]”

首先在你的控制器

 $scope.forminput = {};
$scope.formmodel = {};
然后在视图中,将输入更改为

演示:

//代码在这里
var-app=angular.module(“app”,[]);
应用控制器(“应用测试”,功能($scope){
$scope.forminput={};
$scope.currentInfo={
“属性”:[
{
“名称”:“账户”,
“描述”:“账户”,
},
{
“名称”:“FNAME”,
“描述”:“名字”,
“类型”:“VARCHAR”,
“验证”:“^[a-zA-Z\\s]+”
},
{
“名称”:“LNAME”,
“描述”:“姓氏”,
“类型”:“VARCHAR”,
“验证”:“^[a-zA-Z\\s]+”
},
{
“名称”:“MNAME”,
“描述”:“中间名”,
“类型”:“字符”,
“验证”:“^[a-zA-Z]+[1-9]+”
}
]
};
$scope.clearMe=函数(){
console.log(“herleme”)
$scope.forminput={};
};
});

你好,普朗克!
{{item.desc}}
清楚的

如果我理解,您想单击“清除”按钮清除表单中的所有字段吗

以下是一个工作版本:

var-app=angular.module(“app”,[]);
应用控制器(“应用测试”,功能($scope){
$scope.currentInfo={
“属性”:[
{
“名称”:“账户”,
“描述”:“账户”,
},
{
“名称”:“FNAME”,
“描述”:“名字”,
“类型”:“VARCHAR”,
“验证”:“^[a-zA-Z\\s]+”
},
{
“名称”:“LNAME”,
“描述”:“姓氏”,
“类型”:“VARCHAR”,
“验证”:“^[a-zA-Z\\s]+”
},
{
“名称”:“MNAME”,
“描述”:“中间名”,
“类型”:“字符”,
“验证”:“^[a-zA-Z]+[1-9]+”
}
]
};
$scope.clearMe=函数(){
对于(变量i=0;i<$scope.currentInfo.attribute.length;i++){
$scope.currentInfo.attribute[i]。forminput='';
}
};
});
你好,普朗克!
{{item.desc}}
清楚的

我使用了currentInfo模型本身来绑定输入值。这意味着它们将在ng repeat的范围之外可用。然后clear函数遍历“attributes”数组中的每个项,并将值设置为空字符串。

您的路径是正确的,但有轻微的错误。所有生成的表单都绑定到同一个模型-forminput。您必须动态生成模型绑定

<input name="forminput" ng-model="formmodel[item.name]"/> 
查看


另外,对于生成的表单,请检查项目,因为不需要重新发明轮子。

rom99非常感谢!我盯着这段代码看了很久,甚至想不出答案。答:我可以认为这是一种非常有角度的方式,而不是通过对象递归,只是将对象设回空。谢谢大家!@bluevman gald它帮助了你,接受它作为回答,这样它也可以帮助母亲:)
<input name="forminput" ng-model="formmodel[item.name]"/> 
$scope.formmodel = {};