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