35Angular实现一个todoList

Posted shanlu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了35Angular实现一个todoList相关的知识,希望对你有一定的参考价值。

 

 

 1 <div class="todolist">
 2     <h3>ToDoList</h3>
 3     <input class="todo" type="text" [(ngModel)]="keyword"  (keyup)=keyup($event)>
 4     <p>代办事项:</p>
 5         <h4 *ngFor="let item of todoList;let key = index;" [hidden]="item.state==1"> <!--选中了item.state等于1,那么这个item放到已完成事项中-->
 6              <p> {{item.title}}-------<span (click)="delete(key)">X</span> <input type="checkbox" [(ngModel)]="item.state"> </p>    
 7         </h4>
 8 
 9     <p>已完成事项:</p>
10     <h4 *ngFor="let item of todoList;let key=index;" [hidden]="item.state==0">
11         <p>{{item.title}}-------<span (click)="delete(key)">X</span></p>
12     </h4>
13 </div>
 1 import { Component, OnInit } from \'@angular/core\';
 2 
 3 @Component({
 4   selector: \'app-todolist\',
 5   templateUrl: \'./todolist.component.html\',
 6   styleUrls: [\'./todolist.component.css\']
 7 })
 8 export class TodolistComponent implements OnInit {
 9   keyword:string=\'\';//输入框中输入的关键词
10   state:any=\'\';//状态,用来判断是待完成事项还是已完成事项
11   todoList:Array<any>=[];//包含关键词的数组,数组中每一个元素是一个对象(title:\'\',state:\'\');
12 
13   constructor() { }
14 
15   ngOnInit() {
16   }
17 
18   keyup(e){ //鼠标弹起
19     if(e.keyCode==13){ //按下回车键
20       console.log(this.keyword);
21       if(this.hasKeyWord(this.keyword,this.todoList)){ //可以push到数组的条件是hasKeyWord()返回true,也就是keyword没有出现过
22         this.todoList.push({
23           title: this.keyword,
24           state: 0,
25         });
26       }
27       this.keyword=\'\';//打印出keyword,要清空输入框
28     }
29     
30   }
31 
32   delete(keyIndex){ 
33     console.log(keyIndex);
34     this.todoList.splice(keyIndex,1);
35   }
36 
37 
38   hasKeyWord(keyword:any,todoList:any){ //判断关键词是否在todoList中出现过的方法
39     for(let i=0;i<todoList.length;i++){ //循环遍历todoList数组
40       if(todoList[i].title==keyword){ //如果数组里有了keyword,返回false
41         return false;
42       }
43     }
44     return true;//返回true,说明没有keyword
45   }
46 
47   
48 
49 }

 

以上是关于35Angular实现一个todoList的主要内容,如果未能解决你的问题,请参考以下文章

片段组合在 Relay 中是如何工作的?

angularJS使用ocLazyLoad实现js延迟加载

json 可视代码工作室Angular with Firebase片段

ToDoList的实现

typescript Angular 2测试片段。代码库https://developers.livechatinc.com/blog/category/programming/angular-2/

typescript Angular最终版本的Angular 2测试片段。代码库https://developers.livechatinc.com/blog/category/programming