這裏是我的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