Angular实现的table表格排序功能完整示例


Posted in Javascript onDecember 22, 2017

本文实例讲述了Angular实现的table表格排序功能。分享给大家供大家参考,具体如下:

先来看看效果图:

Angular实现的table表格排序功能完整示例

完整代码如下:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title>3water.com Angular表格排序</title>
    <style>
      table{
        border: 1px solid;
        text-align: center;
        width: 40%;
        height: 400px;
      }
      tr,td{
        border: 1px solid;
      }
      tr:nth-child(2n){
        background: gainsboro;
      }
    </style>
    <script type="text/javascript" src="js/angular.min.js" ></script>
    <script type="text/javascript" src="js/jquery-1.9.1.min.js" ></script>
    <script>
      var app=angular.module("MyApp",[]);
      app.controller("demoC",["$scope",function($scope){
        $scope.shop=[{ state1:false,id:9001,name:"iphoneX",username:"张三",tel:13525565588,price:8699,city:"北京",time:new Date('11-23 10:00:00'),state:"已发货"},
        {state1:false,id:3007,name:"iphone6",username:"王红",tel:18524565588,price:5635,city:"郑州",time:new Date('11-23 11:38:20'),state:"已发货"},
        {state1:false,id:5312,name:"iphone7",username:"赵小龙",tel:17545585598,price:6180,city:"北京",time:new Date('11-23 9:17:00'),state:"未发货"},
        {state1:false,id:2132,name:"iphone8",username:"赵强",tel:17625565618,price:7190,city:"上海",time:new Date('11-23 10:40:00'),state:"未发货"}
        ];
        $scope.ckAll=function(){
          for(var i in $scope.shop){
            $scope.shop[i].state1=$scope.ckall;
          }
        }
        $scope.del=function(){
            for(var i=0; i<$scope.shop.length; i++){
              if($scope.shop[i].state=="已发货"&&$scope.shop[i].state){
                $scope.shop.splice(i,1);
                i--;
                }
                }
        }
        $scope.add=function(){
          var sname=$scope.sname;
          var susername=$scope.susername;
          var stel=$scope.stel;
          var sprice=$scope.sprice;
          var scity=$scope.scity;
          if(sname==undefined || sname==""){
            alert("用户名不能为空");
            $("#s").css("border-color","red");
          }else if(susername==undefined || susername==""){
            alert("商品名不能为空");
            $("#y").css("border-color","red");
          }else if(stel==undefined || stel==""){
            alert("手机号不能为空");
            $("#t").css("border-color","red");
          }else if(sprice==undefined || sprice==""){
            alert("价格不能为空");
            $("#p").css("border-color","red");
          }else if(scity==undefined || scity==""){
            alert("城市必须选择");
          }
          else{
            $scope.shop.push({name:sname,username:susername,tel:stel,price:sprice,city:scity})
            $scope.toto=false;
          }
        }
      }])
    </script>
  </head>
  <body ng-app="MyApp" ng-controller="demoC">
    <button ng-click="toto=true" style="background-color: greenyellow;">新增订单</button>
    <button ng-click="del()" style="background-color: greenyellow;">批量删除</button>
    <input type="text" placeholder="按商品名称查询" ng-model="selname" />
    <input type="text" placeholder="按手机号查询" ng-model="seltel"/>
    <select ng-model="selstate">
      <option value="">按状态查询</option>
      <option value="已发货">已发货</option>
      <option value="未发货">未发货</option>
    </select>
    <table cellpadding="0px" cellspacing="0px">
      <tr style="background-color: gray;">
        <td><input type="checkbox" ng-model="ckall" ng-click="ckAll()"></td>
        <td>id<button ng-click="px='id';flag=!flag" style="background-color: greenyellow;">排序</button></td>
        <td>商品名</td>
        <td>用户名</td>
        <td>手机号</td>
        <td>价格<button ng-click="px='price';flag=!flag" style="background-color: greenyellow;">排序</button></td>
        <td>城市</td>
        <td>下单时间<button ng-click="px='time';flag=!flag" style="background-color: greenyellow;">排序</button></td>
        <td>状态</td>
      </tr>
      <tr ng-repeat="s in shop | filter:{name:selname} | filter:{tel:seltel} | filter:{state:selstate} | orderBy:px:flag ">
        <td><input type="checkbox" ng-model="s.state1"></td>
        <td>{{s.id}}</td>
        <td>{{s.name}}</td>
        <td>{{s.username}}</td>
        <td>{{s.tel}}</td>
        <td>{{s.price | currency:"¥"}}</td>
        <td>{{s.city}}</td>
        <td>{{s.time | date : 'MM-HH hh:dd:ss'}}</td>
        <td><span ng-show="s.state=='已发货'" style="color: greenyellow;">{{s.state}}</span>
              <span ng-show="s.state=='未发货'" style="color: yellow;"><a href="#" rel="external nofollow" ng-click="s.state='已发货'">{{s.state}}</a></span></td>
      </tr>
    </table>
    <div style="margin-top: 50px; margin-left: 100px;">
      <form ng-show="toto">
        商品名:<input type="text" / ng-model="sname" id="s"><br /><br />
      用户名:<input type="text" ng-model="susername"id="y"/><br /><br />
      手机号:<input type="text" ng-model="stel" id="t"/><br /><br />
      价格为:<input type="text" ng-model="sprice" id="p"/><br /><br />
      城市:<select ng-model="scity">
        <option value="">--选择城市--</option>
        <option value="北京">北京</option>
        <option value="上海">上海</option>
        <option value="郑州">郑州</option>
      </select><br /><br />
      <button ng-click="add()">保存</button>
      </form>
    </div>
  </body>
</html>

希望本文所述对大家AngularJS程序设计有所帮助。

Javascript 相关文章推荐
js跑步算法的实现代码
Dec 04 Javascript
jQuery实现伪分页的方法分享
Feb 17 Javascript
用JS写的一个Ajax库(实例代码)
Aug 06 Javascript
js轮播图无缝滚动效果
Jun 17 Javascript
ReactNative之键盘Keyboard的弹出与消失示例
Jul 11 Javascript
angularjs 缓存的使用详解
Mar 19 Javascript
webpack4 css打包压缩问题的解决
May 18 Javascript
Vue监听一个数组id是否与另一个数组id相同的方法
Sep 26 Javascript
element-ui的回调函数Events的用法详解
Oct 16 Javascript
微信小程序控制台提示warning:Now you can provide attr &quot;wx:key&quot; for a &quot;wx:for&quot; to improve performance解决方法
Feb 21 Javascript
js 计算月/周的第一天和最后一天代码
Feb 01 Javascript
微信小程序入门之绘制时钟
Oct 22 Javascript
详解Vue中localstorage和sessionstorage的使用
Dec 22 #Javascript
vue + element-ui实现简洁的导入导出功能
Dec 22 #Javascript
jackson解析json字符串,首字母大写会自动转为小写的方法
Dec 22 #Javascript
js读取本地文件的实例
Dec 22 #Javascript
javascript将json格式数组下载为excel表格的方法
Dec 22 #Javascript
原生js实现移动端触摸轮播的示例代码
Dec 22 #Javascript
JavaScript多线程运行库Nexus.js详解
Dec 22 #Javascript
You might like
php 过滤危险html代码
2009/06/29 PHP
php写的简易聊天室代码
2011/06/04 PHP
CodeIgniter启用缓存和清除缓存的方法
2014/06/12 PHP
ThinkPHP3.1基础知识快速入门
2014/06/19 PHP
PHP接收App端发送文件流的方法
2016/09/23 PHP
在 Laravel 项目中使用 webpack-encore的方法
2019/07/21 PHP
Laravel登录失败次数限制的实现方法
2020/08/26 PHP
js 事件小结 表格区别
2007/08/13 Javascript
JavaScript基础语法、dom操作树及document对象
2014/12/02 Javascript
jQuery中:reset选择器用法实例
2015/01/04 Javascript
kindeditor修复会替换script内容的问题
2015/04/03 Javascript
微信小程序 navigation API实例详解
2016/10/02 Javascript
Bootstrap CSS布局之列表
2016/12/15 Javascript
原生js实现商品放大镜效果
2017/01/12 Javascript
官方推荐react-navigation的具体使用详解
2018/05/08 Javascript
React Hooks的深入理解与使用
2018/11/12 Javascript
详解微信小程序之一键复制到剪切板
2019/04/24 Javascript
js prototype深入理解及应用实例分析
2019/11/25 Javascript
浅析TypeScript 命名空间
2020/03/19 Javascript
python提取内容关键词的方法
2015/03/16 Python
简单谈谈Python中的反转字符串问题
2016/10/24 Python
Python+tkinter模拟“记住我”自动登录实例代码
2018/01/16 Python
Python 判断奇数偶数的方法
2018/12/20 Python
详解PyCharm安装MicroPython插件的教程
2019/06/24 Python
python深copy和浅copy区别对比解析
2019/12/26 Python
Python 实现OpenCV格式和PIL.Image格式互转
2020/01/09 Python
python数据预处理方式 :数据降维
2020/02/24 Python
使用html5制作loading图的示例
2014/04/14 HTML / CSS
The North Face北面荷兰官网:美国著名户外品牌
2019/10/16 全球购物
办公室文秘自我评价
2013/09/21 职场文书
平面设计岗位职责
2013/12/14 职场文书
2014年乡镇植树节活动方案
2014/02/28 职场文书
《假如》教学反思
2014/04/17 职场文书
安全协议书范本
2014/04/21 职场文书
主题党日活动总结
2014/07/08 职场文书
聊聊mysql都有哪几种分区方式
2022/04/13 MySQL