angular40-angular实现todolist3编辑功能

简介: angular40-angular实现todolist3编辑功能

demo497.html

<!DOCTYPE html>
     <html lang="en">
     <head>
         <meta charset="UTF-8">
         <meta name="viewport" content="width=device-width, initial-scale=1.0">
         <title>Document</title>
     </head>
     <body ng-app="MyToDoMvc">
         <section class="todoapp" ng-controller="MainController">
             <header class="header">
                 <h1>todos</h1>
                 <form ng-submit='add()'>
                     <input class="new-todo" placeholder="what needs to be done" ng-model="text" autofocus>
                 </form>
             </header>
             <!-- <input class="new-todo" placeholder="what needs to be done" ng-model="text" autofocus> -->
             <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.completed,editing:todo.id===currentEditimgId} data-id="{{todo.id}}">
                         <div class="view">
                             <input class="toggle" type="checkbox" ng-model="todo.completed">
                             <label ng-dblclick="editing(todo.id)">{{todo.text}}</label>
                             <button class="destroy" ng-click="remove(todo.id)">删除</button>
                         </div>
                         <form ng-submit="save()">
                             <input type="edit" ng-model="todo.text">
                         </form>
                     </li>
                     <!--   <li>
                     <div class="view">
                         <input class="toggle" type="checkbox">
                         <label>Buy a unicorn</label>
                         <button class="destroy"></button>
                     </div>
                     <input type="edit" value="Rule the web">
                 </li> -->
                 </ul>
             </section>
             <footer class="footer">
                 <span class="todo-count"><strong>{{todos.length}}</strong>item left</span>
                 <button class="clear-completed" ng-click="clear()" ng-show="existCompleted()">clear</button>
             </footer>
         </section>
         <script src="./node_modules/angular/angular.js"></script>
         <script src="./js/mvc.js"></script>
         <script>
         </script>
     </body>
     </html>.mvc.js
    (function(angular) {
         'use strict';
         /* 应用程序主要的模块 */
         var myApp = angular.module('MyToDoMvc', []);
         //注册一个主要的控制器
         myApp.controller('MainController', ['$scope', function($scope) {
             //复杂的递归 保证id不重复
             function getId() {
                 var id = Math.random();
                 for (var i = 0; i < $scope.todos.length; i++) {
                     if ($scope.todos[i].id === id) {
                         id = getId();
                         break;
                     }
                 }
                 return id;
             }
             //文本框模型
             $scope.text = '';
             //任务列表模型{id 1.text '学习' completed:trur}
             $scope.todos = [{
                     id: 1,
                     text: '学习',
                     completed: false,
                     editing: false
                 },
                 {
                     id: 2,
                     text: '睡觉',
                     completed: false,
                     editing: false
                 },
                 {
                     id: 3,
                     text: '打豆豆',
                     completed: true,
                     editing: false
                 }
             ];
             //添加元素
             $scope.add = function() {
                     $scope.todos.push({
                         id: $scope.todos.length + 1,
                         text: $scope.text,
                         completed: false
                     });
                     //清空文本数据
                     $scope.text = '';
                 }
                 //处理删除
             $scope.remove = function(id) {
                 //删除谁
                 //寻找
                 for (var i = 0; i < $scope.todos.length; i++) {
                     if ($scope.todos[i].id === id) {
                         $scope.todos.splice(i, 1);
                         break;
                     }
                     /* if (1 === a) {
                     } */
                 }
                 //$scope.todos
             }
             $scope.clear = function() {
                     var result = [];
                     for (var i = 0; i < $scope.todos.length; i++) {
                         if (!$scope.todos[i].completed) {
                             result.push($scope.todos[i]);
                         }
                         /* if (1 === a) {
                         } */
                     }
                     $scope.todos = result;
                 }
                 //是否已经由完成的
             $scope.existCompleted = function() {
                     //该函数一定要有返回值    
                     for (var i = 0; i < $scope.todos.length; i++) {
                         if ($scope.todos[i].completed) {
                             return true;
                         }
                         /* if (1 === a) {
                         } */
                     }
                     return false;
                 }
                 //当前编辑哪个元素
             $scope.currentEditimgId = -1;
             $scope.editing = function(id) {
                 $scope.currentEditimgId = id;
             }
             $scope.save = function(id) {
                 $scope.currentEditimgId = -1;
             }
         }])
     })(angular);

image.png

相关文章
|
7月前
|
JSON 监控 JavaScript
Angular 里使用 FormControl 的步骤
Angular 里使用 FormControl 的步骤
26 0
|
JSON 监控 JavaScript
Angular 里使用 FormControl 的步骤(二)
Angular 里使用 FormControl 的步骤
123 0
Angular 里使用 FormControl 的步骤(二)
|
JavaScript
Angular 里使用 FormControl 的步骤(一)
Angular 里使用 FormControl 的步骤
146 0
Angular 里使用 FormControl 的步骤(一)
angular39-angular实现todolist2删除
angular39-angular实现todolist2删除
88 0
angular39-angular实现todolist2删除
angular37-angular实现todolist基本结构
angular37-angular实现todolist基本结构
115 0
angular37-angular实现todolist基本结构
angular38-angular实现todolist2添加
angular38-angular实现todolist2添加
81 0
angular38-angular实现todolist2添加
|
JavaScript 前端开发 API
了解 Angular 开发的内容
阅读本文,是在你了解 Angular 基本知识的前提下,如果读者还不了解,请前往官网了解。
了解 Angular 开发的内容
使用 Angular CLI 创建基于 Angular 12 的应用
使用 Angular CLI 创建基于 Angular 12 的应用
129 0
使用 Angular CLI 创建基于 Angular 12 的应用
|
存储
如何使用Angular FormBuilder
如何使用Angular FormBuilder
214 0
如何使用Angular FormBuilder