• AngularJS开发记事本小程序


    这是源代码(github):git@github.com:Hughendman/notebook.git

    这是HTML代码:

    <!doctype html>
    <html lang="en">
    	<head>
    		<meta charset="utf-8">
    		<meta name="viewport" content="width=device-width, initial-scale=1">
    		<title>NoteBook</title>
    		<link rel="stylesheet" href="css/base.css">
    		<link rel="stylesheet" href="css/index.css">
    		<script src="js/angular.min.js"></script>
    	</head>
    	<body ng-app="Todos">
    		<section class="todoapp" ng-controller="TodosCtrl">
    			<header class="header">
    				<h1>NOTE</h1>
    				<form ng-submit="add()">
    					<input class="new-todo" ng-model="todo" placeholdder="You need to do something!!" autofocus>
    				</form>
    			</header>
    			<section class="main">
    				<input class="toggle-all" type="checkbox">
    				<label for="toggle-all">Mark all as complete</label>
    				<ul class="todo-list">
    					<li ng-repeat="todo in todos" ng-class="{completed: todo.flag}">
    						<div class="view">
    							<input class="toggle" ng-click="toggle($index)" type="checkbox" ng-checked="todo.flag">
    							<label>{{todo.text}}</label>
    							<button class="destroy" ng-click="delete($index)"></button>
    						</div>
    						<input class="edit" value="Create a TodoMVC template">
    					</li>
    				</ul>
    			</section>
    			<footer class="footer">
    				<span class="todo-count"><strong>{{length}}</strong> item left</span>
    				<button class="clear-completed" ng-click="clear()">Clear completed</button>
    			</footer>
    		</section>
    		<script>
    			var Todos = angular.module('Todos', []);
    
    			Todos.controller('TodosCtrl', ['$scope', function ($scope) {
    				// 声明一个数组,用来存储待办事项
    				$scope.todos = [
    					{text: '写日记', flag: true},
    					{text: '做饭', flag: false},
    					{text: '洗脸', flag: true},
    					{text: '刷牙', flag: true},
    				];
    				$scope.add = function () {
    					// 向数组中添加数据
    					$scope.todos.push({text: $scope.todo, flag: false});
    					// 清空表单
    					$scope.todo = '';
    					$scope.length=$scope.count();
    					
    				};
    
    				// 切换事项状态(完成/未完成)
    				$scope.toggle = function (index) {
    					// 改变数组中某单元的flag属性
    					$scope.todos[index].flag = !$scope.todos[index].flag;
    					$scope.length=$scope.count();
    				};
    
    				// 删除事项
    				$scope.delete = function(index) {
    					// 将数组中某单元删除
    					$scope.todos.splice(index, 1);
    					$scope.length=$scope.count();
    					
    				};
    				$scope.clear = function (){
    					for (var i=0 ;i< $scope.todos.length ; i++){
    						if($scope.todos[i].flag==true){
    							$scope.delete(i);
    							$scope.clear();
    						}
    
    					}
    				};
    				$scope.count=function(){
    					var count=0;
    					for(var i=0;i<$scope.todos.length;i++){
    						if($scope.todos[i].flag==false){
    							count++;
    						}
    					}
    					return count;
    				}
    				$scope.length=$scope.count();
    			}]);
    
    		</script>
    	</body>
    </html>
    

      这是base.css文件(注意,请用less)

    hr {
    	margin: 20px 0;
    	border: 0;
    	border-top: 1px dashed #c5c5c5;
    	border-bottom: 1px dashed #f7f7f7;
    }
    
    .learn a {
    	font-weight: normal;
    	text-decoration: none;
    	color: #b83f45;
    }
    
    .learn a:hover {
    	text-decoration: underline;
    	color: #787e7e;
    }
    
    .learn h3,
    .learn h4,
    .learn h5 {
    	margin: 10px 0;
    	font-weight: 500;
    	line-height: 1.2;
    	color: #000;
    }
    
    .learn h3 {
    	font-size: 24px;
    }
    
    .learn h4 {
    	font-size: 18px;
    }
    
    .learn h5 {
    	margin-bottom: 0;
    	font-size: 14px;
    }
    
    .learn ul {
    	padding: 0;
    	margin: 0 0 30px 25px;
    }
    
    .learn li {
    	line-height: 20px;
    }
    
    .learn p {
    	font-size: 15px;
    	font-weight: 300;
    	line-height: 1.3;
    	margin-top: 0;
    	margin-bottom: 0;
    }
    
    #issue-count {
    	display: none;
    }
    
    .quote {
    	border: none;
    	margin: 20px 0 60px 0;
    }
    
    .quote p {
    	font-style: italic;
    }
    
    .quote p:before {
    	content: '“';
    	font-size: 50px;
    	opacity: .15;
    	position: absolute;
    	top: -20px;
    	left: 3px;
    }
    
    .quote p:after {
    	content: '”';
    	font-size: 50px;
    	opacity: .15;
    	position: absolute;
    	bottom: -42px;
    	right: 3px;
    }
    
    .quote footer {
    	position: absolute;
    	bottom: -40px;
    	right: 0;
    }
    
    .quote footer img {
    	border-radius: 3px;
    }
    
    .quote footer a {
    	margin-left: 5px;
    	vertical-align: middle;
    }
    
    .speech-bubble {
    	position: relative;
    	padding: 10px;
    	background: rgba(0, 0, 0, .04);
    	border-radius: 5px;
    }
    
    .speech-bubble:after {
    	content: '';
    	position: absolute;
    	top: 100%;
    	right: 30px;
    	border: 13px solid transparent;
    	border-top-color: rgba(0, 0, 0, .04);
    }
    
    .learn-bar > .learn {
    	position: absolute;
    	 272px;
    	top: 8px;
    	left: -300px;
    	padding: 10px;
    	border-radius: 5px;
    	background-color: rgba(255, 255, 255, .6);
    	transition-property: left;
    	transition-duration: 500ms;
    }
    
    @media (min- 899px) {
    	.learn-bar {
    		 auto;
    		padding-left: 300px;
    	}
    
    	.learn-bar > .learn {
    		left: 8px;
    	}
    }
    

      最后别忘记引入angular.min.js文件,以及初始化样式的index.css文件(网上有很多)。

  • 相关阅读:
    万能的everything彻底解决mysql问题
    乱码问题
    机器学习学习规划
    NG机器学习笔记
    书籍与博客
    技术规划
    反置数
    多个接口出现同名函数的处理-转
    接口-imploements-委托
    接口使用中,对象生命周期管理-转
  • 原文地址:https://www.cnblogs.com/hughman/p/7028958.html
Copyright © 2020-2023  润新知