ng-model 在 ng-repeat 中被覆盖
ng-model overwritten within ng-repeat
我有一个带有输入字段的 table,我在 ng-repeat
的每次迭代中将值设置为 ng-model
。我在每次迭代中得到正确的值,但所有 ng-model
值都被迭代的最后一个值覆盖。我该如何解决这个问题?
查看
<tr ng-repeat="student in students_list">
<td>{{student.Rollnumber}}</td>
<td>{{student.Name}}</td>
<td ng-repeat="item in Allsubjects" >
<input type="text" class="form-control" ng-model="da"
ng-init="alert(student.Id)">
</td>
</tr>
控制器
$scope.alert = function(id)
{
$scope.da =id;
};
这就是我得到的(屏幕截图):
331 是上次迭代的结果。它正在覆盖以前的值。
我认为您问题的根源在于您的对象定义。
尝试像这样创建对象
$scope.student_list = [
student1 = {
Rollnumber : 9999,
Name : "Foo",
sub1 : 0
}
]
等... 它应该为每个元素提供不同的 ng-model
。但是如果您可以共享您的对象,那么找到实际错误会更有帮助。
<tr ng-repeat="student in students_list">
<td>{{student.Rollnumber}}</td>
<td>{{student.Name}}</td>
<td ng-repeat="item in Allsubjects" >
<input type="text" class="form-control" ng-model="da"+item
ng-init="alert(student.Id,)">
</td>
</tr>
这里我们给模型(即物品)添加动态值,现在它不会覆盖模型值,您可以通过您定义的函数轻松获取它:
$scope.alert = function(id,item)
{
$scope.da+item = id;
};
是的,将迭代的最后一个值分配给 "da"
是预期的行为
您可以通过
解决此问题
<tr ng-repeat="student in students_list">
<td>{{student.Rollnumber}}</td>
<td>{{student.Name}}</td>
<td ng-repeat="item in Allsubjects" >
<input type="text" class="form-control" ng-model="student['da']"
ng-init="alert(student)">
</td>
</tr>
和警报功能
$scope.alert = function(student)
{
student["da"] = student.id;
};
在这里,我们只是为 student_list 数组中的每个学生对象创建一个名为 "da"(取你使用的名字)的新 属性,因此它将具有相应的值它是对象。
我有一个带有输入字段的 table,我在 ng-repeat
的每次迭代中将值设置为 ng-model
。我在每次迭代中得到正确的值,但所有 ng-model
值都被迭代的最后一个值覆盖。我该如何解决这个问题?
查看
<tr ng-repeat="student in students_list">
<td>{{student.Rollnumber}}</td>
<td>{{student.Name}}</td>
<td ng-repeat="item in Allsubjects" >
<input type="text" class="form-control" ng-model="da"
ng-init="alert(student.Id)">
</td>
</tr>
控制器
$scope.alert = function(id)
{
$scope.da =id;
};
这就是我得到的(屏幕截图):
331 是上次迭代的结果。它正在覆盖以前的值。
我认为您问题的根源在于您的对象定义。
尝试像这样创建对象
$scope.student_list = [
student1 = {
Rollnumber : 9999,
Name : "Foo",
sub1 : 0
}
]
等... 它应该为每个元素提供不同的 ng-model
。但是如果您可以共享您的对象,那么找到实际错误会更有帮助。
<tr ng-repeat="student in students_list">
<td>{{student.Rollnumber}}</td>
<td>{{student.Name}}</td>
<td ng-repeat="item in Allsubjects" >
<input type="text" class="form-control" ng-model="da"+item
ng-init="alert(student.Id,)">
</td>
</tr>
这里我们给模型(即物品)添加动态值,现在它不会覆盖模型值,您可以通过您定义的函数轻松获取它:
$scope.alert = function(id,item)
{
$scope.da+item = id;
};
是的,将迭代的最后一个值分配给 "da"
是预期的行为您可以通过
解决此问题<tr ng-repeat="student in students_list">
<td>{{student.Rollnumber}}</td>
<td>{{student.Name}}</td>
<td ng-repeat="item in Allsubjects" >
<input type="text" class="form-control" ng-model="student['da']"
ng-init="alert(student)">
</td>
</tr>
和警报功能
$scope.alert = function(student)
{
student["da"] = student.id;
};
在这里,我们只是为 student_list 数组中的每个学生对象创建一个名为 "da"(取你使用的名字)的新 属性,因此它将具有相应的值它是对象。