English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Esempio di codice per la funzione del carrello della spesa in Angularjs

Principianti angularJS, nel mio tempo libero ho fatto un piccolo esempio.

Funzione: Calcolare il prezzo dei prodotti nel carrello e rimuovere i prodotti dal carrello.

Ecco un esempio completo (jQuery e angularjs devono essere inclusi manualmente)

<!doctype html>
<html ng-app="myApp">
<head>
<meta charset="utf-8">
<title>无标题文档</title>
<style>
.cursors{cursor:pointer}
</style>
<script src="js/jquery-1.11.1.js"></script>
<script src="js/angular.min.js"></script>
<script>
var A=angular.module('myApp',[]);
//购物车 加
A.directive('myAdds',function(){
return {
link:function(scope, element, attr){
element.click(function(){
var This=this
angular.forEach(scope.dataList,function(data,index,array){
if(attr.items==data.items){
data.num=parseInt(data.num)+1;
scope.allPrices();
scope.$apply() //刷新视图
}
});
});
} 
}
}
//购物车 减
A.directive('myMinus',function(){
return {
link:function(scope, element, attr){
element.click(function(){
var This=this
angular.forEach(scope.dataList,function(data,index,array){
if(attr.items==data.items){
if(data.num<=1){
if(confirm('是否删除该产品')){
data.num=0;
$(This).siblings('input').val(0);
scope.allPrices();
scope.$apply();
//delete array[index];
scope.dataList.splice(index,1)
$(This).parents('tr').remove();
}
}else{
data.num=parseInt(data.num)-1;
};
scope.allPrices();
scope.$apply();
}
});
});
} 
}
}
//全选,全不选
A.directive('allOrcan',function(){
return function(scope, element, attr){
element.click(function(){
var isCheck=$(this).find('input').prop('checked');
if(isCheck){
$('input[type=checkbox]').prop('checked',true);
}else{
$('input[type=checkbox]').not($('input[type=checkbox]').eq(0)).prop('checked',false);
}
angular.forEach(scope.dataList,function(data,index,array){
data.Bol=isCheck;
}
scope.allPrices();
scope.$apply();
}
}
}
//单选
A.directive('oneCheck',function(){
return function(scope, element, attr){
element.click(function(){
var This=this
angular.forEach(scope.dataList,function(data,index,array){
if(attr.items==data.items){
var isCheck=$(This).prop('checked');
data.Bol=isCheck;
scope.allPrices();
scope.$apply();
}
}
});
}
}
A.controller('myAngular',['$scope','$filter',function($scope,$filter){
$scope.dataList=[//inizializzazione dei dati del carrello
{Bol:'false',name:'lavatrice',num:'1',items:'0',oneprice:'900',price:''},
{Bol:'false',name:'caldaia',num:'1',items:'1',oneprice:'110',price:''},
{Bol:'false',name:'condizionatore d'aria',num:'1',items:'2',oneprice:'116',price:''},
{Bol:'false',name:'frigorifero',num:'1',items:'3',oneprice:'2087',price:''},
{Bol:'false',name:'cucina a induzione',num:'1',items:'4',oneprice:'135',price:''},
{Bol:'false',name:'coperta',num:'1',items:'5',oneprice:'50',price:''},
{Bol:'false',name:'blocco notes',num:'1',items:'6',oneprice:'2',price:''},
{Bol:'false',name:'penna',num:'1',items:'7',oneprice:'115',price:''},
{Bol:'false',name:'tazza',num:'1',items:'8',oneprice:'12',price:''},
{Bol:'false',name:'Books',num:'1',items:'9',oneprice:'5',price:''}
{Bol:'false',name:'Snacks',num:'1',items:'10',oneprice:'13',price:''}
];
//总价格的计算
$scope.allPrices=function(){
$scope.allprice=0;
angular.forEach($scope.dataList,function(data,index,array){
data.price=data.num*data.oneprice;
if(data.Bol==true){
$scope.allprice+=parseInt(data.price);
}
}
return $scope.allprice;
};
//按单价排序
$scope.CartSort=function(arg){
angular.forEach($scope.dataList,function(data,index,array){
arguments.callee['CartSort('+arg+')']=!arguments.callee['CartSort('+arg+')']
$scope.dataList=$filter('orderBy')($scope.dataList,arg,arguments.callee['CartSort('+arg+')'])
}
}
})
</script>
</head>
<body ng-controller="myAngular">
<table border="1">
   <tr>
     <td><label all-orcan><input type="checkbox">全选/取消全选 </label></td>
     <td>名称</td>
     <td>数量</td>
     <td ng-click='CartSort("oneprice")'>单价</td>
     <td>价格</td>
    </tr>
   <tr ng-repeat="data in dataList">
     <td><input type="checkbox" one-check items={{data.items}}></td>
     <td ng-cloak>{{data.name}}</td>
     <td><input type="text" ng-cloak ng-model="data.num" items="{{data.items}}" style="width:50px;text-align:center;"> <button my-adds items="{{data.items}}" ng-class="{cursors:true}" >+</button> <button my-minus items="{{data.items}}" ng-class="{cursors:true}" >-</button> </td>
     <td ng-cloak>{{data.oneprice}}</td>
     <td ng-cloak>{{data.price}}</td>
    </tr>
  </table>
  <div>Prezzo totale: {{allPrices()}}</div>
</body>
</html>
<!--<script>alert(0)</script>-->

L'effetto è come mostrato nell'immagine: 

Rispettare i risultati del lavoro, indicare la fonte dell'articolo (http://blog.csdn.net/sllailcp/article/details/47833315)...

Dichiarazione: il contenuto di questo articolo è stato tratto da Internet, il copyright spetta ai rispettivi proprietari, il contenuto è stato contribuito e caricato autonomamente dagli utenti di Internet, questo sito non detiene i diritti di proprietà, non è stato editato manualmente e non assume responsabilità legali correlate. Se trovi contenuti sospetti di violazione del copyright, ti preghiamo di inviare una email a: notice#oldtoolbag.com (al momento dell'invio dell'email, sostituisci # con @) per segnalare il problema e fornire prove pertinenti. Una volta verificata, questo sito rimuoverà immediatamente il contenuto sospetto di violazione del copyright.

Ti potrebbe interessare