>html
~~~
<p>todolist works!</p>
<div style="text-align: center">
<input type="text" [(ngModel)]="keywords" (keyup)="searchActionEnter($event)"> <button (click)="searchAction()">搜索</button>
</div>
<h3>列表</h3>
<ul>
<li *ngFor="let item of history;let k=index">
<input type="checkbox" (click)="doneList(k)" />
{{item}} ---
<span style="color: red" (click)="delete(k)">[x]</span>
</li>
</ul>
<h3>已完成</h3>
<ul>
<li *ngFor="let item of doneHistory"> {{item}} </li>
</ul>
~~~
>component.ts
~~~
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-todolist',
templateUrl: './todolist.component.html',
styleUrls: ['./todolist.component.css']
})
export class TodolistComponent implements OnInit {
constructor() { }
ngOnInit(): void {
}
public keywords:string;
public history:Array<string>=[];
searchAction():void
{
this.saveHistory();
}
searchActionEnter(e):void{
if(e.keyCode==13){
this.saveHistory();
}
}
private saveHistory():void
{
if(this.history.indexOf(this.keywords)!=-1){
alert(this.keywords+"已经存在");
return;
}
this.history.push(this.keywords);
this.keywords='';
}
delete(index):void{
this.history.splice(index,1);
}
public doneHistory:Array<string>=[];
doneList(index):void{
this.doneHistory.push(this.history[index]);
this.delete(index);
}
}
~~~
- 引言
- 安装angular9
- 入门
- 数据绑定
- 属性绑定
- 实体字符和转义
- html 模板运算
- css样式规范
- 数组与循环ngFor
- 条件ngIf
- 管道
- 事件执行
- 双向数据绑定mvvm
- todolist页面交互
- 公共服务层
- 数据持久化
- dom与ViewChild装饰器
- 父子组件传值
- 子父组件传值ViewChild
- 子父组件out装饰器
- 生命周期-挂/卸载
- es6语法io异步promise
- Rxjs异步数据流编程
- http_request
- axios异步数据
- 英雄route路由
- 动态route路由
- navigate route
- Parent child routing
- modularization
- lazyload