热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

AngularJs技术实现简单的表格管理

AngularJS是一个JavaScript框架。它可通过标签添加到HTML页面。AngularJS通过指令扩展了HTML,且通过表达式绑定数据到

AngularJS 是一个 Javascript 框架。它可通过<”script”>标签添加到 HTML 页面。
AngularJS 通过 指令 扩展了 HTML&#xff0c;且通过 表达式 绑定数据到 HTML。
AngularJS 是一个 Javascript 框架。它是一个以 Javascript 编写的库。
AngularJS 是以一个 Javascript 文件形式发布的&#xff0c;可通过 script 标签添加到网页中&#xff1a;


<script src&#61;"http://cdn.static.runoob.com/libs/angular.js/1.4.6/angular.min.js">script>

我们建议把脚本放在 <”body”> 元素的底部。
这会提高网页加载速度&#xff0c;因为 HTML 加载不受制于脚本加载 &#xff0c;同时,给用户的体验也很好
各个 angular.js 版本下载地址&#xff1a; >https://github.com/angular/angular.js/releases

什么是 AngularJS&#xff1f;有哪些特性?
AngularJS 使得开发现代的单一页面应用程序&#xff08;SPAs&#xff1a;Single Page Applications&#xff09;变得更加容易。
*AngularJS 把应用程序数据绑定到 HTML 元素。
*AngularJS 可以克隆和重复 HTML 元素。
*AngularJS 可以隐藏和显示 HTML 元素。
*AngularJS 可以在 HTML 元素”背后”添加代码。
*AngularJS 支持输入验证。

这是一个AngularJs 的API参考文档
http://www.runoob.com/angularjs/angularjs-reference.html
平时多看看API文档,有助于帮助你提高开发效率


效果就这个样子

这里写图片描述

这是一个简单的表格管理,简单的不能再简单了,不过,没有做数据的传输和交互,
只限于做一个演示页面!
//第一步就要导入AngularJs的类库
<style type&#61;"text/css">*{margin: 0px auto;padding: 0px;}#addlist{background-color: #5CD6FF;border-radius: 5px;}#delechange{background-color: #5CD6FF;border-radius: 5px;}table{width: 800px;line-height: 40px;text-align: center;}.true{background: #30FC30;}.false{background: #FCFC30;}#table2{width: 800px;text-align: left;}style>

<center><br /><div><input type&#61;"button"id&#61;"addlist" value&#61;"新增订单" ng-click&#61;"addnewlist()"/><input type&#61;"button"id&#61;"delechange" value&#61;"批量删除" ng-click&#61;"deletechange()" /><input type&#61;"text" ng-model&#61;"searchbyname" ng-keydown&#61;"checkuserbyname($event)" placeholder&#61;"按商品名查询..." /><input type&#61;"text" ng-model&#61;"searchbytel" ng-keydown&#61;"checkuserbytel($event)" placeholder&#61;"按手机号查询..." /><select ng-model&#61;"checkstate" ng-change&#61;"changecheck()" ng-init&#61;"checkstate&#61;&#39;--按状态查询--&#39;"><option>--按状态查询--option><option>已发货option><option>未发货option>select>div><br /><table border&#61;"1px" cellspacing&#61;"0px" cellpadding&#61;"0px"><tr style&#61;"background: #999999;"><th><input type&#61;"checkbox" ng-model&#61;"state" ng-click&#61;"checkall(state)"/>th><td>id<input type&#61;"button" ng-click&#61;"sortbyid()" style&#61;"background:#5CD6FF ;" value&#61;"排序"/>td><td>商品名td><td>用户名td><td>手机号td><td>价格<input type&#61;"button" ng-click&#61;"sortbyprice()" style&#61;"background:#5CD6FF ;" value&#61;"排序"/>td><td>城市td><td>下单时间<input type&#61;"button" ng-click&#61;"sortbytime()" style&#61;"background:#5CD6FF ;" value&#61;"排序"/>td><td>状态td>tr><tr ng-repeat&#61;"user in users"><td><input type&#61;"checkbox" name&#61;"del" ng-click&#61;"changestate($index)"/>td><td>{{user.id}}td><td>{{user.goodname}}td><td>{{user.username}}td><td>{{user.tel}}td><td>{{user.price|currency:"&#xffe5;"}}td><td>{{user.city}}td><td>{{user.time|date:&#39;yyyy-MM-dd HH:mm:ss&#39;}}td><td><input type&#61;"button" class&#61;"{{user.state}}" value&#61;"{{user.state|selffilter}}" ng-click&#61;"changevalue($index)" />td>tr>table><br /><br /><fieldset ng-show&#61;"show" style&#61;"width: 800px;"><legend>添加订单信息legend><table id&#61;"table2" border&#61;"0px" cellspacing&#61;"0px" cellpadding&#61;"0px"><tr><th>商品名th><td><input type&#61;"text" ng-model&#61;"addgoodname" />td><td><span id&#61;"addgoodname">span>td>tr><tr><th>用户名th><td><input type&#61;"text" ng-model&#61;"addusername" />td><td><span id&#61;"addusername">span>td>tr><tr><th>手机号th><td><input type&#61;"text" ng-model&#61;"addtel" />td><td><span id&#61;"addtel">span>td>tr><tr><th>价格th><td><input type&#61;"text" ng-model&#61;"addprice" />td><td><span id&#61;"addprice">span>td>tr><tr><th>城市th><td><select ng-model&#61;"addcity" ng-change&#61;"checkcity()" ng-init&#61;"addcity&#61;&#39;请选择城市&#39;"><option>请选择城市option><option value&#61;"北京">北京option><option value&#61;"上海">上海option><option value&#61;"广州">广州option>select>td><td><span id&#61;"addcity">span>td>tr>table><input type&#61;"button" value&#61;"保存" ng-click&#61;"save()" />fieldset>center>body><--
逻辑代码,不过我没有写入到js文件中,因为懒-->
<script type&#61;"text/Javascript">var app &#61; angular.module("myapp",[]);app.controller("myctrl",function($scope){//初始化订单数据var usertemp&#61;[{"flag":false,"id":2001,"goodname":"HuaweiMate9","username":"张三","tel":"13525565588","price":"4899","city":"北京","time":new Date(1513142424231),"state":true},{"flag":false,"id":3006,"goodname":"xiaomi6","username":"王红","tel":"18525575588","price":"3635","city":"郑州","time":new Date(1513251204231),"state":true},{"flag":false,"id":5312,"goodname":"一加5T","username":"赵小龙","tel":"13524065588","price":"5180","city":"北京","time":new Date(1513252564231),"state":false},{"flag":false,"id":2132,"goodname":"oppo-R11","username":"李强","tel":"17625865588","price":"3190","city":"上海 ","time":new Date(1513256364231),"state":false},];$scope.users&#61;usertemp;//改变删除按钮所在行的状态值$scope.changestate&#61;function($index){usertemp[$index].flag &#61; !usertemp[$index].flag;$scope.users&#61;usertemp;}//批量删除$scope.deletechange&#61;function(){//倒序删除避免一次无法删除的情况for (var i &#61; usertemp.length-1 ; i >&#61; 0; i--) {var flag &#61; usertemp[i].flag;//选中状态值var state &#61; usertemp[i].state;//发货状态值if (flag&#61;&#61;true&&state&#61;&#61;true) {usertemp.splice(i,1);//从原始数组里删除掉}}//重新赋值$scope.users&#61;usertemp;}//选择所有$scope.checkall&#61;function(){//获取所有name为cbs的input按钮var cbs &#61; $("input[name &#61; del]");for (var i &#61; 0; i //把全选按钮的状态值传递给数据cbs[i].checked &#61; $scope.state;}$scope.users&#61;usertemp;}//按照时间排序var timeflag&#61;true;$scope.sortbytime&#61;function(){if (timeflag) {usertemp.sort(function(x,y){return x.time - y.time;});}else{usertemp.sort(function(x,y){return y.time - x.time;});}timeflag &#61; !timeflag;$scope.users&#61;usertemp;}//按id排序var idflag&#61;true;$scope.sortbyid&#61;function(){if (idflag) {usertemp.sort(function(x,y){return x.id - y.id;});}else{usertemp.sort(function(x,y){return y.id - x.id;});}idflag &#61; !idflag;$scope.users&#61;usertemp;}//按价格排序var priceflag&#61;true;$scope.sortbyprice&#61;function(){if (priceflag) {usertemp.sort(function(x,y){return x.price - y.price;});}else{usertemp.sort(function(x,y){return y.price - x.price;});}priceflag &#61; !priceflag;$scope.users&#61;usertemp;}//通过电话模糊查询用户$scope.checkuserbytel&#61;function($event){var code &#61; $event.keyCode;//定义新的临时数组var newusers&#61; [];var code &#61; $event.keyCode;//定义新的临时数组if (code&#61;&#61;13) {//获取输入框的内容var searchbytel &#61; $scope.searchbytel;//判断内容为空if (searchbytel&#61;&#61;""||searchbytel&#61;&#61;null) {alert("请输入查询内容");return;}//根据得到的内容遍历数组中的数据for (var i &#61; 0; i var tel &#61; usertemp[i].tel;if (tel.indexOf(searchbytel)!&#61;-1) {newusers.push(usertemp[i]);}}//判断是否为空if (newusers.length&#61;&#61;0) {alert("未查找到内容");return;}//重新赋值$scope.users&#61;newusers;}}//通过商品名查询$scope.checkuserbyname&#61;function($event){var code &#61; $event.keyCode;//定义新的临时数组var newusers&#61; [];if (code&#61;&#61;13) {//获取输入框的内容var searchbyname &#61; $scope.searchbyname;//判断内容为空if (searchbyname&#61;&#61;""||searchbyname&#61;&#61;null) {alert("请输入内容");return;}//根据得到的内容遍历数组中的数据for (var i &#61; 0; i var goodname &#61; usertemp[i].goodname;if (goodname.indexOf(searchbyname)!&#61;-1) {newusers.push(usertemp[i]);}}//判断是否为空if (newusers.length&#61;&#61;0) {alert("未查找到内容");return;}//重新赋值$scope.users&#61;newusers;}}//新增订单$scope.addnewlist&#61;function(){$scope.show&#61;true;}//发货$scope.changevalue&#61;function($index){usertemp[$index].state &#61; !usertemp[$index].state;$scope.users&#61;usertemp;}//查询发货状态$scope.changecheck&#61;function(){var newuser&#61;[];var state &#61; $scope.checkstate;if (state&#61;&#61;"已发货") {for (var i &#61; 0; i var userstate &#61; usertemp[i].state;if (userstate&#61;&#61;true) {newuser.push(usertemp[i]);}}}if (state&#61;&#61;"未发货") {for (var i &#61; 0; i var userstate &#61; usertemp[i].state;if (userstate&#61;&#61;false) {newuser.push(usertemp[i]);}}}if (state&#61;&#61;"--按状态查询--") {for (var i &#61; 0; i //城市var addcity&#61;"";$scope.checkcity&#61;function(){var city &#61; $scope.addcity;addcity&#61;city;}//添加用户$scope.save&#61;function(){var addname &#61; $scope.addgoodname;var addusername &#61; $scope.addusername;var addtel &#61; $scope.addtel;var addprice &#61; $scope.addprice;var obj&#61;/^[0-9]&#43;$/;if (addname&#61;&#61;undefined) {$("#addgoodname").text("请输入商品名");return;}else{$("#addgoodname").text("");}if (addusername&#61;&#61;undefined) {$("#addusername").text("请输入用户名");return;}else{$("#addusername").text("");}if (addtel&#61;&#61;undefined||obj.test(addtel)&#61;&#61;false) {$("#addtel").text("请输入电话");return;}else{$("#addtel").text("");}if (addprice&#61;&#61;undefined||obj.test(addprice)&#61;&#61;false) {$("#addprice").text("请输入价格");return;}else{$("#addprice").text("");}var id &#61; Math.random()*1000 &#43; 9000;id &#61; parseInt(id, 10);var time &#61; new Date();var newuser&#61;{"flag":false,"id":id,"goodname":addname,"username":addusername,"tel":addtel,"price":addprice,"city":addcity,"time":time,"state":false}usertemp.push(newuser);$scope.users&#61;usertemp; $scope.show&#61;false;}});//自定义过滤器,过滤发货状态app.filter("selffilter",function(){return function(input){//传递过来的状态值if (input&#61;&#61;true) {return "已发货";} else{ return "未发货";}return input;}});script>

推荐阅读
  • 使用在线工具jsonschema2pojo根据json生成java对象
    本文介绍了使用在线工具jsonschema2pojo根据json生成java对象的方法。通过该工具,用户只需将json字符串复制到输入框中,即可自动将其转换成java对象。该工具还能解析列表式的json数据,并将嵌套在内层的对象也解析出来。本文以请求github的api为例,展示了使用该工具的步骤和效果。 ... [详细]
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 本文介绍了如何使用PHP向系统日历中添加事件的方法,通过使用PHP技术可以实现自动添加事件的功能,从而实现全局通知系统和迅速记录工具的自动化。同时还提到了系统exchange自带的日历具有同步感的特点,以及使用web技术实现自动添加事件的优势。 ... [详细]
  • 本文介绍了闭包的定义和运转机制,重点解释了闭包如何能够接触外部函数的作用域中的变量。通过词法作用域的查找规则,闭包可以访问外部函数的作用域。同时还提到了闭包的作用和影响。 ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • EPICS Archiver Appliance存储waveform记录的尝试及资源需求分析
    本文介绍了EPICS Archiver Appliance存储waveform记录的尝试过程,并分析了其所需的资源容量。通过解决错误提示和调整内存大小,成功存储了波形数据。然后,讨论了储存环逐束团信号的意义,以及通过记录多圈的束团信号进行参数分析的可能性。波形数据的存储需求巨大,每天需要近250G,一年需要90T。然而,储存环逐束团信号具有重要意义,可以揭示出每个束团的纵向振荡频率和模式。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 原文地址:https:www.cnblogs.combaoyipSpringBoot_YML.html1.在springboot中,有两种配置文件,一种 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 本文介绍了作者在开发过程中遇到的问题,即播放框架内容安全策略设置不起作用的错误。作者通过使用编译时依赖注入的方式解决了这个问题,并分享了解决方案。文章详细描述了问题的出现情况、错误输出内容以及解决方案的具体步骤。如果你也遇到了类似的问题,本文可能对你有一定的参考价值。 ... [详细]
  • 本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ... [详细]
author-avatar
雅婷永幸482
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有