AngularJs实现表格点击不同字段排序的功能

Angular表格排序:从基础到实践 假设我们有一个书籍管理系统,用户可以添加、编辑或删除书籍列表。我们希望在展示这些书籍时,用户能够通过点击表头来对书籍进行排序。这里我们使用Angular Material的MatSort来实现这一功能。通过上述步骤,我们实现了一个在Angular应用中可以对书籍进行排序的表格。这个实例不仅展示了如何使用MatSort,还包含了对表单数组的操作、数据绑定和事件处理等多个方面的内容。希望这个实例能帮助你更好地理解和应用Angular Material的排序功能。 阅读详情

主布局里面的代码

<h2>我是购物车</h2>
<div class="search">
    <input type="text" placeholder="输入关键字…" ng-model="serch">
    <button ng-click="moreDel()">批量删除</button>
</div>
<table>
    <thead>
    <th><input type="checkbox" ng-model="checkAll" ng-click="checkall(checkAll)"></th>
    <th ng-click="sort('id')" >商品编号<span ng-class="getClass('id')"></span></th>
    <th ng-click="sort('name')" >商品名称<span ng-class="getClass('name')"></span></th>
    <th ng-click="sort('price')">商品价格<span  ng-class="getClass('price')"></span></th>
    <th ng-click="sort('count')">商品库存<span  ng-class="getClass('count')"></span></th>
    <th ng-click="sort('allmoney')">商品总价<span ng-class="getClass('allmoney')"></span></th>
    <th>数据操作</th>
    </thead>
    <tbody>
    <tr ng-repeat="item in arr | filter:searchFilter | orderBy:sortOrder:reservse">
        <td><input type="checkbox" ng-model="item.check" ng-click="check()"></td>
        <td>{{item.id}}</td>
        <td> {{item.name}}</td>
        <td>{{item.price | currency:"¥"}}</td>
        <td>{{item.count}}</td>
        <td>{{item.count*item.price | currency:"¥"}}</td>
        <td>
            <button ng-click="remove($index)">删除</button>
        </td>
    </tr>
    </tbody>
    <tfoot>
    <tr>
        <td colspan="7" style="text-align: right;margin-right: 50px">总价: <span>{{allmoney | currency:"¥"}}</span>
            包含运费:<span>{{fire | currency:"¥"}}</span></td>
    </tr>
    </tfoot>
</table>
 angularjs的代码
/*views界面的控制*/
myapp.controller("newsCtrl", function ($scope) {
    $scope.arr = arr;
    //算钱的函数
    function money() {
        //计算总价格
        $scope.allmoney = 0;
        for (var i = 0; i < $scope.arr.length; i++) {
            $scope.allmoney += $scope.arr[i].price * $scope.arr[i].count;
        }
        //计算运费
        $scope.fire = 0
        if ($scope.allmoney < 1000) {
            $scope.fire = 10;
        }
        //加运费的总价格
        $scope.allmoney += $scope.fire;
    }

    money();
    //删除的功能
    $scope.remove = function (index) {
        if (window.confirm("确认删除吗")) {
            $scope.arr.splice(index, 1);
            money();
        }
        if ($scope.arr.length == 0) {
            $scope.fire = 0;
            $scope.allmoney = 0;
        }
    }
    //全选按钮的判断
    $scope.checkAll = false;
    var checkInput = false;
    //批量删除的函数
    $scope.moreDel = function () {
        if ($scope.checkAll == false && checkInput == false) {
            alert("请选择要操作的商品");
        } else {
            if (window.confirm("确认删除")) {
                for (var i = 0; i < $scope.arr.length; i++) {
                    if ($scope.arr[i].check == true) {
                        $scope.arr.splice(i, 1);
                        i--;
                    }
                }
            }
        }
    }
    //判断多选框是否选中,默认是不选择
    $scope.checkall = function (check) {
        if (check) {
            forArr(true);
        } else {
            forArr(false);
        }
    }

    //遍历数组的方法
    function forArr(state) {
        for (var i = 0; i < $scope.arr.length; i++) {
            $scope.arr[i].check = state;
        }
    }

    //判断每个条目前的多选框是否选中
    $scope.check = function () {
        //用来记录是否全选
        var flag = 0;
        for (var i = 0; i < $scope.arr.length; i++) {
            if ($scope.arr[i].check == true) {
                checkInput = true;
                flag++;
            }
        }
        console.log(flag);
        if (flag == $scope.arr.length) {
            $scope.checkAll = true;
        } else {
            $scope.checkAll = false;
        }
    }
    //按字段查询
    $scope.serch = "";
    $scope.searchFilter = function (obj) {
        if ($scope.serch != null) {
            console.log($scope.serch);
            if (obj.name.toLowerCase().indexOf($scope.serch.toLowerCase()) != -1) {
                return true;
            } else {
                return false;
            }
        } else {
            return true;
        }
    }
    //排序的功能
    $scope.sortOrder = "id";
    $scope.reservse = true;
    $scope.sort = function (ziduan) {
        console.log(ziduan);
        if (ziduan == $scope.sortOrder) {
            $scope.reservse = !$scope.reservse;
        } else {
            $scope.reservse = false;
        }
        $scope.sortOrder = ziduan;
    }
    //添加上下三角
    $scope.getClass = function (field) {
        if ($scope.sortOrder == field) {
            if ($scope.reservse == true) {
                return 'top';
            } else {
                return 'bot';
            }
        }
    }
});
界面


AngularJS 添加排序查询功能代码分享 首先,我们需要在应用程序的 HTML 模板中添加相应的控件和绑定。假设我们有一个包含学生信息的表格,其中包括学生的姓名、年龄和成绩。在本文中,我们分享了如何在 AngularJS 应用程序中添加排序和查询功能的代码示例。通过使用 AngularJS 的指令和过滤器,我们可以轻松地实现数据的排序和过滤。在 AngularJS 应用程序中,添加排序和查询功能是非常常见的需求。将上述代码保存为一个 HTML 文件,并在浏览器中打开该文件,就可以看到一个带有排序和查询功能的学生信息表格了。 阅读详情

相关推荐

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

主要介绍了Angular实现的table表格排序功能,结合完整实例形式分析了AngularJS表格排序所涉及的事件响应、元素遍历、属性修改等相关操作技巧,需要的朋友可以参考下

angularjs 字段排序 多字段排序

我们用angularjs {{}},ng-model循环绑定数组或对象的内容的时候,有时候会用到排序,有时候可能会有多个字段排序 具体要用到过滤 数据的展现,可以通过ng-repeat实现。当网页解析到ng-repeat的时候,会为每一个数组中的元素都克隆一份标签,进行编译解析。 如上图 ,用orderBy可以实现排序的功能,具体用法见上图,上图显示的结果如下图,如果你需要由小到大的排...

weixin_30607029的博客 401

避开这些坑!baostock获取股票数据时最容易犯的5个错误(Python实战)

本文针对使用Python和baostock库获取股票历史数据时常见的五大陷阱,提供了实战解决方案。重点剖析了登录状态验证、参数配置、数据解析、批量操作效率及数据一致性校验等关键环节,帮助开发者构建稳健高效的数据获取流程,避免因细节疏忽导致的数据错误或性能瓶颈。

websocket5live的博客 1440

推荐项目:AngularJS Tablesort —— 让数据表格排序轻而易举

推荐项目:AngularJS Tablesort —— 让数据表格排序轻而易举 在前端开发领域,数据的展示常常离不开表格,而赋予这些表格动态排序的能力则是提升用户体验的关键。今天,我们来探索一个专为AngularJS设计的开源项目——AngularJS Tablesort,它让基于Angular的应用中的表格排序变得简单且直观。 项目介绍 AngularJS Tablesort是一个旨在简化Ang...

gitblog_00102的博客 393

手把手教你用Boot-Repair快速修复Ubuntu启动分区缺失(附详细命令行步骤)

本文详细介绍了如何使用Boot-Repair工具快速修复Ubuntu启动分区缺失问题,包括诊断、应急准备、自动修复和手动命令操作。通过grub rescue模式下的关键命令和Boot-Repair的图形界面操作,帮助用户高效解决启动分区故障,确保系统恢复正常运行。

weixin_29229989的博客 562

【高等数值分析】Krylov子空间方法

文章目录1. 预备理论1.1 Krylov 子空间1.2 最佳逼近1.2.1 方法一:最佳平方逼近1.2.2 方法二:假设 AAA 对称正定1.2.3 方法三:残差2范数2. 基底正交化2.1 Arnoldi 过程(CGS)2.2 改进 Arnoldi 过程(MGS)2.3 Lanczos过程3. 方程组求解3.1 全正交方法 (FOM)3.2 D-Lanczos方法3.3 广义极小残量法(GMRES)3.4 MINRES 方法 1. 预备理论 现在需要求解一个大规模稀疏方程组 Ax=bAx=bAx=b,可

Glooow的博客 1万+

在Angular中有多个字段

How to sort by using multiple fields at same time in angular? 如何在角度中同时使用多个字段进行排序? fist by group and

asdfgh0077的博客 260

Codesys—Modbus RTU称重变送器通讯案例

Codesys控制器使用标准的Modbus库,与支持ModbusRTU的称重变送器进行通讯的案例

原来你也__的博客 2739

AngularJS table 按照表头字段排序功能(升序和降序)

一、表格按照表头排序 1 <!doctype html> 2 <html ng-app="a3_4"> 3 <head> 4 <title>表头排序</title> 5 <meta http-equiv="Content-Type" content="text/html; charset=u...

weixin_30900589的博客 556

智能车图像处理去畸变+逆透视教程

图像处理,去畸变与逆透视整合

wu58430的博客 1万+

Halcon手眼标定实战:从九点标定到机械臂精准抓取(附完整代码)

本文详细介绍了Halcon手眼标定技术在实际工业场景中的应用,重点讲解了九点标定法在机械臂精准抓取中的实现步骤和优化技巧。通过对比Eye-to-Hand和Eye-in-Hand两种模式的特点,提供完整的代码示例和误差分析,帮助工程师快速掌握标定技术,提升自动化系统的精度和稳定性。

weixin_29100927的博客 459

filter 以及 orderBy的使用

filter用于关键字过滤操作,orderBy用于排序操作,运行界面如下: 点击标题Name与Email实现排序功能,输入框中输入关键字进行过滤,同时实现根据关键字进行过滤后进行排序操作: ng-repeat="user in users | filter:keyword | orderBy:sortField:reverse" index.html &lt;!DOCTYP...

weixin_34301132的博客 683

Node.js内存溢出?一招搞定JavaScript heap out of memory错误(附永久配置方案)

本文深入解析Node.js内存溢出问题,提供从临时调整到永久配置的完整解决方案。重点介绍通过设置`max-old-space-size`参数和`NODE_OPTIONS`环境变量来扩展JavaScript堆内存限制,适用于Webpack、Vite等构建工具的大型项目场景,并涵盖Windows、Linux/macOS多平台配置方法。

cake8的博客 1055

如何使用 AngularJS 构建功能丰富的表格?

在 Web 开发中,表格是一种常见的数据展示方式。AngularJS 提供了强大的指令和服务,使得表格的创建和操作变得更加简单、高效。本文将详细介绍 AngularJS 中的表格相关知识,并演示如何使用 AngularJS 构建功能丰富的表格。

网络技术联盟站 654

大数据领域数据产品的交通运输行业应用

您是否经历过早高峰被堵在桥上,看着导航显示“前方5公里缓行”却无能为力?是否见过货车司机绕远路导致成本飙升?这些“交通痛点”的背后,是传统交通管理依赖经验决策的局限。本文将聚焦“大数据数据产品”这一核心工具,从技术原理到实际应用,全面解析它如何为交通运输行业“开天眼”,解决从城市拥堵到物流效率的一系列难题。本文将按照“问题引入→概念拆解→技术原理→实战案例→应用场景→未来趋势”的逻辑展开,用生活化比喻降低理解门槛,用代码和数学模型提升专业性,最终帮您建立“大数据+交通”的完整认知框架。交通数据。

操作系统内核探秘的博客 236

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Cline 搭配 DeepSeek 时为什么要关闭 Auto Approve?

在 VS Code 中使用 Cline(扩展市场页面显示为 Cline (prev. Claude Dev))并接入 DeepSeek API 后,awesome-deepseek-integration 项目收录的 Cline 文档([英文](https://link.gitcode.com/i/8d7c33c1c8613251eae53bee77e19f27)、[中文](https://lin

gitblog_00292的博客 1070

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

AngularJs实现 每列排序,输入查找、插入升序降序图标

Title table{ border-collapse: collapse; } th,td{ padding: 10px; border: 1px solid #000; } .top{ display: in

wanleiSuper的博客 1414

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

php 双击列表排序,AngularJS轻松实现双击排序的功能

话不多说,直接看示例代码HTML代码单价销售金额销售数量其中 la=!la 是用来判断当前点击是true还是falseJS代码//开始默认为totalnum字段 按照降序排列$scope.foodsale =ret.sort(function ( x,y ){return y.totalnum - x.totalnum;//这样表示 按照ret【表示接收返回数组】里面的totalnum字段 按照降...

weixin_39729262的博客 129

AngularJS 表格详解

表格是用于展示和操作数据的一种常见形式。在AngularJS中,表格通常用于展示从服务器获取的数据或者应用内部的数据。接下来,我们需要定义表格的配置对象,包括数据源、列定义等。data: [{ id: 1, name: '张三', age: 20 },{ id: 2, name: '李四', age: 22 },{ id: 3, name: '王五', age: 24 }});AngularJS表格是一个功能强大、易于使用的组件。通过本文的介绍,相信你已经对AngularJS表格有了全面的认识。

xyq2024的博客 452

AngularJS系列(六)——表格

用ng-repeat显示表格十分方便容易 基本显示 {{x.Name}} {{x.Country}} var app = angular.module('myA

咸鱼老罗的博客 574

angularjs的模糊查询,排序

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <!--导包--> <script src="angular-1.5.5/angular.min.js"></script> <script> /*声明模块*/

love_mysunshine的博客 330

网络请求 点击排序

&lt;!DOCTYPE html&gt;&lt;html&gt; &lt;head&gt; &lt;meta charset="utf-8" /&gt; &lt;title&gt;&lt;/title&gt; &lt;script src="js/angular.js"&gt;&lt;/script&gt; &lt;scri

we1601r的博客 280

Angularjs 排序

&lt;!DOCTYPE html&gt;&lt;html ng-app="App"&gt; &lt;head&gt;  &lt;meta charset="UTF-8"&gt;  &lt;title&gt;&lt;/title&gt; &lt;/head&gt; &lt;body ng-controller="Democtrl"

l6666_6666的博客 867

angularjs 排序+小三角+模糊查询

html> html lang="en"> head> meta charset="UTF-8"> title>Titletitle> script src="">script> style> *{ margin: 0; padding: 0; } table{

飞鸟96 384

Angulars购物车表格按字段排序和删除功能

先来看看布局中的页面 我是购物车 批量删除 商品编号 商品名称 商品价格 商品库存 商品总价 数据操作 {{item.id}} {{item.name}} {{item.price | currency:

潇湘夜雨 396

AngularJS 实现 双击排序

关键代码:html <th class="col-md-3"><a href="" ng-click="desc('2',la=!la)">单价</a></th> <th class="col-md-3"><a href="" ng-click="desc('3',la=!la)">销售金额</a>&l...

weixin_30537391的博客 87
上一篇: AngularJS 实现简单购物车
下一篇: Android消息推送解决方案
时光无声
博客等级 码龄9年 97粉丝 65原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值