时间:2021-07-01 10:21:17 帮助过:6人阅读
本文实例讲述了Angular实现的日程表功能。分享给大家供大家参考,具体如下:
先来看看运行效果:
具体代码如下:
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>www.gxlcms.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相关内容感兴趣的读者可查看本站专题:《AngularJS指令操作技巧总结》、《AngularJS入门与进阶教程》及《AngularJS MVC架构总结》
希望本文所述对大家AngularJS程序设计有所帮助。