Javascript 如何在angular js中切换到其他视图时获取购物车值
嗨,我正在开发一个购物车项目 它有不同的类别 每个类别都有不同的产品 当我从特定类别向购物车添加产品时,它会被添加 当我返回并将另一个产品添加到同一类别的购物车时,它被正确地添加,并且上一个产品也显示得很好 但是,当转到另一个类别并将产品添加到购物车时,购物车页面将清除所有以前的产品,并且不显示任何以前的产品 如何解决此问题并维护添加到购物车中的产品,而无需在整个项目中清除Javascript 如何在angular js中切换到其他视图时获取购物车值,javascript,angularjs,Javascript,Angularjs,嗨,我正在开发一个购物车项目 它有不同的类别 每个类别都有不同的产品 当我从特定类别向购物车添加产品时,它会被添加 当我返回并将另一个产品添加到同一类别的购物车时,它被正确地添加,并且上一个产品也显示得很好 但是,当转到另一个类别并将产品添加到购物车时,购物车页面将清除所有以前的产品,并且不显示任何以前的产品 如何解决此问题并维护添加到购物车中的产品,而无需在整个项目中清除 我没有使用任何服务来维护它,我只想在angularjs中维护它在angular摘要周期内,只有两种方法可以保存所有angu
我没有使用任何服务来维护它,我只想在angularjs中维护它在angular摘要周期内,只有两种方法可以保存所有angular应用程序中的数据
1--$rootScope(not recommended)
2--using Angular Services
因为你的评论,当你说
“我没有使用任何服务来维护它,我只想在angularjs中维护它”
您正在参考第三方或后端服务。Angular有自己的一套服务,您也可以使用,即Cookie服务、存储服务或您可以使用自己的送货车服务,这是您的建议,建立您的购物卡服务,处理您的所有操作并跟踪您的数据。Angular services是应用程序的单例对象,允许它们持久化数据。创建服务真的很简单,你可以这么说
app.service('myservice',['$rootScope','$http','$timeout',function($rootScope,$http,$timeout){
//$rootscope useful if you want to broadcast events to the app
//$http useful if you want to update based on the users selection or deletion
//$timeout useful if you want to set time based alerts or expirations
var storage={};
return{
insert:function(item){/*logic to insert an item into storage*/},
remove:function(id){/*logic to remove an item from storage*/},
get:function(id){/*logic to get all items*/}
}
}])
使用服务的控制器
使用控制器的视图
-
{{item}}
添加
像这样的事情可能会让你明白一些。您使用的是哪种生成器/模板项目?你好,Dayan,谢谢您提供的信息。我刚开始学习角js。你能提供一个服务的示例应用程序来完全理解它吗
app.Controller('Category1ItemsController',['myservice',function(myservice){
$scope.items=[1,2,3,4,5,6]
$scope.appendItem=function(item){
myservice.insert(item);
}
}]);
<ul ng-controller="Category1ItemsController">
<li ng-repeat="item in items">
{{item}}
<button ng-click="appendItem(item)">Add</button>
</li>
</ul>