自定义商品数据,实现对商品的过滤、排序和删除功能

来源:互联网 发布:win7优化软件 编辑:程序博客网 时间:2024/05/16 15:12
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>AngularJS过滤器filter,orderBy排序,删除全部数据</title>
<script type="text/javascript" src="../js/angular.js" ></script>
<script>
var app = angular.module("myApp",[]);
app.controller("myCtrl",function($scope){
$scope.products = [
{
id:80,
name:"ipad",
price:5400
},
{
id:1200,
name:"ipad mini",
price:2200
},
{
id:500,
name:"iPhone",
price:2340
},
{
id:29,
name:"imac",
price:1420
},
{
id:910,
name:"ipad air",
price:15400
}
];

/* 1. 使用AngularJS过滤器orderBy对商品进行排序;
   具体是点击每一列标题名字时,产品进行正序倒序排列。*/
    /* 2. 同时使用AngularJS过滤器可以实现;
             根据用户输入的产品名称筛选出对应的产品,实现模糊查询。*/
$scope.sortFlag = "-";  //倒序标识符
$scope.sortName = "name";//根据产品名称倒序排序

//定义根据产品列名排序的功能
$scope.sortProducts = function(columnName){
$scope.sortName = columnName ;
if ($scope.sortFlag == "-") {
$scope.sortFlag = "" ;
} else{
$scope.sortFlag = "-" ;
}
};
  
/* 3. 点击产品后面的删除按钮,实现删除当前商品。*/  
$scope.deleteProduct = function(name){

//根据列名删除数据,首先根据所在下标遍历所有内容
for (index in $scope.products) {
if($scope.products[index].name == name){
//使用js中的删除方法,每次删除的项目数量为1行
$scope.products.splice(index,1);
}
}
};

// 4. 点击 全部删除 按钮,实现删除所有产品数据功能
$scope.deleteAll = function(){
$scope.products = null;
};
});
</script>
</head>

<body ng-app="myApp" ng-controller="myCtrl">
<center>
<caption><b>产品咨询表</b></caption>
<p> <input type="text" ng-model="search" placeholder="产品名称"/> &nbsp; 
<button ng-click="deleteAll()">全部删除</button>
</p>
<table border="1" cellpadding="21" cellspacing="0" >
<thead>
<tr>
<!--根据产品列名排序的点击事件-->
<th ng-click="sortProducts('id')">产品编号</th>
<th ng-click="sortProducts('name')">产品名称</th>
<th ng-click="sortProducts('price')">产品价格</th>
<th>  删除   </th>
</tr>
</thead>

<!--先遍历出产品数据,再过滤子元素,实现模糊查询功能,最后根据列头标题实现排序-->
<tbody align="center" ng-repeat="goods in products | filter:search | orderBy:(sortFlag+sortName)">
<tr>
<td>{{goods.id}}</td>
<td>{{goods.name}}</td>
<td>{{goods.price}}</td>

<!--根据产品列名删除指定商品的点击事件-->
<td><button  ng-click="deleteProduct(goods.name)">删除</button></td>
</tr>
</tbody>
</table>

</center> 
</body>
</html>
原创粉丝点击