AngularJS过滤器filter,orderBy排序,删除全部数据

<!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>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值