Javascript 在ng repeat中选择多个项目,并将对象发送到ng cart的Addtocart功能

Javascript 在ng repeat中选择多个项目,并将对象发送到ng cart的Addtocart功能,javascript,angularjs,shopping-cart,Javascript,Angularjs,Shopping Cart,我有一个场景,其中我有重复项目列表,每个项目上都有复选框,页面标题部分也有“全选”功能,如果我选择一个项目或全选(多个),则“添加到购物车”按钮将被激活(默认情况下,当选中或选择列表中的任何项目时,禁用和启用)。 但现在的重点是,ng cart指令的Addtocart功能的编写方式是Addtocart按钮应该位于列表中的每个项目上。,但我的情况是,我必须首先检查一个项目或多个项目,然后只使用一个Addtocart按钮一次性添加或添加单个或多个项目 帮我做这个 资源: 如和中所示,在ngCart服

我有一个场景,其中我有重复项目列表,每个项目上都有复选框,页面标题部分也有“全选”功能,如果我选择一个项目或全选(多个),则“添加到购物车”按钮将被激活(默认情况下,当选中或选择列表中的任何项目时,禁用和启用)。 但现在的重点是,ng cart指令的
Addtocart
功能的编写方式是
Addtocart
按钮应该位于列表中的每个项目上。,但我的情况是,我必须首先检查一个项目或多个项目,然后只使用一个
Addtocart
按钮一次性添加或添加单个或多个项目

帮我做这个

资源:

如和中所示,在
ngCart
服务上有一种方法
addItem
,可用于将项目添加到购物车,如:

ngCart.addItem(id, name, price, quantity, data);
因此,在您的情况下,一旦检查了一个或多个项目是否已检查,就可以通过循环检查每个已检查项目来调用此方法

确保在应用程序模块依赖项中添加模块
ngCart
,并在控制器中添加服务
ngCart
,以访问服务的所有共享方法

进行以下更改以使其正常工作:

docListView.html

// Added this button for testing

<button ng-click="addItem()">AddToCart</button>

我明白你的意思,但addtocart按钮位于每个按钮单击的每个列表项上,我们调用addItem函数并在购物车中按下单个对象。对吧?,但我的情况是,我只是标题上的一个“添加到购物车”按钮,在每个项目上都有复选框,在“选择”或“单个或多个”复选框中,我必须一次将多个项目传递到Addtocart按钮,该按钮是保存在我页面标题上的全局按钮。希望你明白我的意思,那不是按钮,它在
ngCart
模块中定义为服务。如果您检查
ngAddToCart
指令的源代码,它也在使用相同的方法添加项目。@AttamjotSingh:我明白您的意思,您可以循环检查每个检查项目,并调用如上所示的
addItem
方法,该方法将每个项目添加到购物车中。您能为我创建一个JSFIDLE示例吗,这将非常有帮助。谢谢,我可以这样做,但是如果你可以添加你已经用小提琴写的代码并分享,我会用解决方案更新它。
//Inject 'ngCart' service in the controller as a dependency.

docListController.$inject = ["$scope", "ngCart"];

//function that will be called when `AddToCart` button is clicked,
//where each selected item is added to the cart.

$scope.addItem = function (){

  angular.forEach($scope.seletedDocumentsCollection.selectedValues, function (selectedItem) {

   ngCart.addItem(selectedItem.isbn, selectedItem.login, selectedItem.price);

  });
}