使用动态表和angularjs进行双向数据绑定?

使用动态表和angularjs进行双向数据绑定?,angularjs,Angularjs,我正在创建一个表,我将在其中动态创建行。每次用户单击按钮时,都会创建一个新行,如下所示: 第二列将包含产品的数量。所以,我想对第二列中的所有值求和,使用bg模型和ng绑定,通过双向数据绑定显示它们。因此,当用户输入一个时,值将自动更新。我对此一无所知,因为行是动态的 对于固定数量的元素,它是有效的,但对于动态生成,我不知道。帮忙 我认为您可以创建一个包含ID、名称和值的对象表,以及一个将向其中添加范围新数据的函数。然后,您可以在控制器中添加一个函数,该函数将简单地求和所有值,并根据ID编辑表中

我正在创建一个表,我将在其中动态创建行。每次用户单击按钮时,都会创建一个新行,如下所示:

第二列将包含产品的数量。所以,我想对第二列中的所有值求和,使用bg模型和ng绑定,通过双向数据绑定显示它们。因此,当用户输入一个时,值将自动更新。我对此一无所知,因为行是动态的


对于固定数量的元素,它是有效的,但对于动态生成,我不知道。帮忙

我认为您可以创建一个包含ID、名称和值的对象表,以及一个将向其中添加范围新数据的函数。然后,您可以在控制器中添加一个函数,该函数将简单地求和所有值,并根据ID编辑表中的对象

下一步,在此表中重复,在视图中显示它。 对于ng中的所有输入,使用sum和edit重复添加函数


我在我的一个项目中做到了这一点,但即使成功了,我也不认为应该这样做。如果愿意,您可以尝试。

我们需要首先设置一个要使用的对象,并可能放入一些示例数据

 $scope.ourTableArray = [];
 $scope.ourTableArray.push({'textColumn': 'example text', 'valueColumn': 10});
由于Angular使用数据绑定的方式,我们可以将表行的ng repeat绑定到包含所有值的数组:

<tr ng-repeat="row in ourTableArray">
   <td><input type="text" ng-model="row.textColumn"</td>
   <td><input type="number" ng-model="row.valueColumn"</td>
</tr>
既然已经设置了ng重复,我们只需要有一种方法来计算值。解决方法是创建一个函数,将对象的
valueColumn
相加:

$scope.calculateTotal = function() {
   var count = 0;
   for(row in $scope.ourTableArray){
      count += $scope.ourTableArray[row].valueColumn;
   }
   return count;
}
要输出新的总数,我们所要做的就是在页面中调用这个函数

Current Total of 2nd column: {{calculateTotal()}}
总而言之:正如我上面所说的,因为我们将ng repeat绑定到数组中,所以无论何时修改数组(通过添加行、删除行、编辑行值),它都会立即反映在表中。此外,由于我们正在输出
$calculateTotal()
函数的结果,因此每当我们修改数组中的一个值时,它也会发生变化


那么,您是在要求一个可以添加动态列表的函数吗?我是在要求一种在动态列表中添加数字的方法。这些数字应该与ng模型一起添加,以便实时显示用户。如果我告诉你我做了类似的事情,我认为它不起作用,因为它生成了一个奇怪的数字,你会相信吗?问题是,字段的类型是“text”,它们没有被添加,而是连接在一起。谢谢没问题,有时候这肯定会发生在我们当中最好的人身上,好的Javascript使用了它的无类型变量!
Current Total of 2nd column: {{calculateTotal()}}