这是我的factories.html代码
af.factory("PurchaseFactory",function(){
var productlist={products:[]};
return{
getpurchaseCart:function(){
return productlist;
},
addPurchaseCart:function(products){
productlist.products.push(products);
}
}
})
对于Services.html
as.service("PurchaseService",function(PurchaseFactory){
this.getAllPurchase=function(){
return PurchaseFactory.getpurchaseCart();
}
this.addPurchase=function(products)
{
PurchaseFactory.addPurchaseCart(products);
}
})
对于Controller.html
ac.controller("PurchaseController",function($scope,PurchaseService){
$scope.savepurchase=function(products){
if($scope.products._id==undefined){
$scope.products=angular.extend($scope.products,$scope.sizes)
PurchaseService.addPurchase($scope.products);
}
}
}
这里我在同一个控制器中有另一个功能,如
$scope.saveorder=function(cartorder){
$scope.Mainpurchaselist=angular.extend($scope.cartorder,$scope.getpurchaseList)
CartService.addPurchaseCart($scope.Mainpurchaselist);
$scope.getpurchaseList.products={}
$scope.cartorder={}
$scope.products={}
$rootScope.isLogin=false;
CartService.deletecartyPurchase(idx);
Notification.success({message: 'your Cart Saving Successfully', delay: 1000});
}
在我的HTML文件中,我有一个按钮,其功能为savepurchase(产品)。 第一次它的保存数据,但从第二次它显示我错误为TypeError:productlist.products.push不是一个函数。如果我刷新页面再次保存数据,但一直不能正常工作。让我知道代码出错的地方。 $ scope.getpurchaselist.products = {}用于为每次新购买生成数据null。如果我删除$ scope.getpurchaselist.products = {},它的工作正常没有错误,但问题是列表没有得到null。 所以最后我有两种方式 1.要么通过编写$ scope.getpurchaselist.products = {}使其为null,但错误为productlist.products.push不是函数让我知道克服该错误 2.或者删除该行并让我知道,如何使其为空
答案 0 :(得分:2)
我认为,$ scope.getpurchaseList.products = {}正在影响你。因为它在控制器加载时传递空对象而不是数组。所以,试着删除它。
答案 1 :(得分:1)
条件if($scope.products._id==undefined)
打破了你。请检查你写的逻辑。请注意$scope.products
和products
在savepurchase
函数中都是不同的变量。
首次延长$scope.products
后,条件返回false
。
答案 2 :(得分:0)
将 $ scope.products 更改为产品。因为你将产品作为参数传递给savepurchase()函数。所以不需要在ur controller中定义为scope.products