Angular实现的日程表功能【可添加及隐藏显示内容】


Posted in Javascript onDecember 27, 2017

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

先来看看运行效果:

Angular实现的日程表功能【可添加及隐藏显示内容】

具体代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>3water.com Angular日程表</title>
  <style>
    table{
      border-collapse: collapse;
    }
    td{
      padding: 10px;
      border: 1px solid #000;
    }
  </style>
  <script src="angular.min.js"></script>
  <script>
    /*
     1、基本布局
     2、准备模拟数据
     */
    // 模拟数据
    var data = {
      user:"吴四",
      items:[
        {action:"约刘诗诗吃饭",done:false},
        {action:"约刘诗诗跳舞",done:false},
        {action:"约刘诗诗敲代码",done:true},
        {action:"约刘诗诗爬长城",done:false},
        {action:"约刘诗诗逛天坛",done:false},
        {action:"约刘诗诗看电影",done:false}
      ]
    };
    var myapp=angular.module("myapp",[]);
    /*这里的是自定义过滤器,将数组items 过滤之后返回arr*/
    myapp.filter("doFilter",function(){
      /*传入两个参数,一个数组items,另一个是complate*/
      return function(items,flag){
        var arr=[];
        /*遍历items,如果dones是false或者下边的按钮在选中状态,就将这一条item push到arr中*/
        for(var i=0;i<items.length;i++){
          if(items[i].done==false){
            arr.push(items[i]);
          }else{
            if(flag==true){
              arr.push(items[i]);
            }
          }
        }
        return arr;
      }
    });
    myapp.controller("myCtrl",function($scope){
      $scope.data=data;
      $scope.complate=false;
      /*判断还有几件事儿没有完成*/
      $scope.count=function(){
        var n=0;
        /*判断还有几件事儿没有完成*/
        for(var i=0;i<$scope.data.items.length;i++){
          if($scope.data.items[i].done==false){
            n++;
          }
        }
        return n;
      };
      /*添加新的日程*/
      $scope.add=function(){
        /*对$scope.action进行一下非空判断*/
        if($scope.action){
          /*如果输入了内容之后,就在数组的最后加入一条新内容*/
          $scope.data.items.push({"action":$scope.action,"done":false});
          /*添加完成之后,将input置空*/
          $scope.action="";
        }
      };
    });
  </script>
</head>
<body ng-app="myapp" ng-controller="myCtrl">
<h2>吴四的日程<span ng-bind="count()"></span></h2>
<div>
  <input type="text" ng-model="action"><button ng-click="add()">添加</button>
</div>
<table>
  <thead>
  <tr>
    <th>序号</th>
    <th>日程</th>
    <th>完成情况</th>
  </tr>
  </thead>
  <tbody>
  <tr ng-repeat="item in data.items|doFilter:complate">
    <td>{{$index}}</td>
    <td>{{item.action}}</td>
    <td><input type="checkbox" ng-model="item.done"></td>
  </tr>
  </tbody>
</table>
<div>显示全部<input type="checkbox" ng-model="complate"></div>
</body>
</html>

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

Javascript 相关文章推荐
基于jQuery的表格操作插件
Apr 22 Javascript
Windows8下搭建Node.js开发环境教程
Sep 03 Javascript
JavaScript实现点击文字切换登录窗口的方法
May 11 Javascript
jQuery实现的网页竖向菜单效果代码
Aug 26 Javascript
AngularJS 避繁就简的路由
Jul 01 Javascript
真正好用的js验证上传文件大小的简单方法
Oct 27 Javascript
JS数组搜索之折半搜索实现方法分析
Mar 27 Javascript
JS 中document.write()的用法和清空的原因浅析
Dec 04 Javascript
vue里面父组件修改子组件样式的方法
Feb 03 Javascript
值得收藏的八个常用的js正则表达式
Oct 19 Javascript
详解vue中使用vue-quill-editor富文本小结(图片上传)
Apr 24 Javascript
bootstrap-closable-tab可实现关闭的tab标签页插件
Aug 09 Javascript
Vue+SpringBoot开发V部落博客管理平台
Dec 27 #Javascript
简单的Vue异步组件实例Demo
Dec 27 #Javascript
Vue.js组件间的循环引用方法示例
Dec 27 #Javascript
全面介绍vue 全家桶和项目实例
Dec 27 #Javascript
CSS3结合jQuery实现动画效果及回调函数的实例
Dec 27 #jQuery
使用jQuery 操作table 完成单元格合并的实例
Dec 27 #jQuery
浅谈vue-router 路由传参的方法
Dec 27 #Javascript
You might like
PHP数字格式化
2006/12/06 PHP
PHP中strtr字符串替换用法详解
2014/11/26 PHP
PHP实现检测客户端是否使用代理服务器及其匿名级别
2015/01/07 PHP
thinkphp实现把数据库中的列的值存到下拉框中的方法
2017/01/20 PHP
PHP实现验证码校验功能
2017/11/16 PHP
javascript事件问题
2009/09/05 Javascript
javascript引擎长时间独占线程造成卡顿的解决方案
2014/12/03 Javascript
javascript实现设置、获取和删除Cookie的方法
2015/06/01 Javascript
JS中mouseover和mouseout多次触发问题如何解决
2016/06/06 Javascript
JS实现自动阅读单词(有道单词本添加功能)
2016/11/14 Javascript
JS基于面向对象实现的选项卡效果示例
2016/12/20 Javascript
JS定时检测任务任务完成后执行下一步的解决办法
2016/12/22 Javascript
svg动画之动态描边效果
2017/02/22 Javascript
angular.js指令中transclude选项及ng-transclude指令详解
2017/05/24 Javascript
JS使用canvas中的measureText方法测量字体宽度示例
2019/02/02 Javascript
微信小程序前端promise封装代码实例
2019/08/24 Javascript
layui table 多行删除(id获取)的方法
2019/09/12 Javascript
JavaScript实现打砖块游戏
2020/02/25 Javascript
详细分析Node.js 多进程
2020/06/22 Javascript
微信小程序实现打卡签到页面
2020/09/21 Javascript
JS操作JSON常用方法(10w阅读)
2020/12/06 Javascript
[48:51]完美世界DOTA2联赛PWL S2 Magma vs InkIce 第一场 11.28
2020/12/02 DOTA
Python+Django在windows下的开发环境配置图解
2009/11/11 Python
bpython 功能强大的Python shell
2016/02/16 Python
Django实现登录随机验证码的示例代码
2018/06/20 Python
Python单元测试unittest的具体使用示例
2018/12/17 Python
英国领先的男装设计师服装购物网站:Mainline Menswear
2018/02/04 全球购物
捷克浴室和厨房设备购物网站:SIKO
2018/08/11 全球购物
Mybag美国/加拿大:英国奢华包包和名牌手袋网站
2020/02/16 全球购物
C有"按引用传递"吗
2016/09/06 面试题
兴趣小组活动总结
2014/05/05 职场文书
辞职信标准格式
2015/02/27 职场文书
2015年商场工作总结
2015/04/27 职场文书
金正昆讲礼仪观后感
2015/06/11 职场文书
css filter和getUserMedia的联合使用
2022/02/24 HTML / CSS
Java 获取Word中所有的插入和删除修订的方法
2022/04/06 Java/Android