这里是我的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 = {}用于为每个新购买的数据创建一个空值。如果我删除了$ scope.getpurchaselist.products = {},它的工作正常,但没有错误,但问题是列表没有变为空。 SO最后我有两种方法 1.或者通过编写$ scope.getpurchaselist.products = {}来使其成为null,但errorlist作为productlist.products.push不是函数让我知道要克服该错误 2.或者删除该行,并让我知道,如何使其为空
您可以在推送前添加console.log(productlist.products)吗? – alpert
是的。我在添加之前将它写入控制器。我看到不同的是,$ hashkey是第一次生成,但从第二次生成它。 @alpert – ANK
我遇到了一个提示是,使用轨道和stringify选项,但它不工作,任何其他解决方案,或者我尝试更改代码 – ANK