Angular2基础之用户输入
在这篇文章中,我们将要讲解如何处理用户的操作,最常见的就是点击和输入了;本篇文章着重讲解关于用户的点击和输入的处理. 我们这次的初始项目还是以我们的QuickStart小项目为基础,然后在那个基础上进行我们今天的操作;在我们这个项目中因为要使用到大量的HTML片段,所以我们决定使用模板文件而不是使用内敛的模板. 首先修改我们装饰器函数中配置对象的 在装饰器函数中应该是这样的: templateUrl: 'app/templates/app-template.html' 好了,接下来就该我们大展身手了;首先我们先来介绍一下在 export class AppComponent { msg = 'dreamapple'; showMsg() { alert(this.msg); } } 然后是我们的HTML模板: <h1>User Input</h1> <div> 用户的点击事件 <br> <button (click)="showMsg()" >show msg</button> </div> 这样,当我们点击按钮show msg的时候就会弹出 好了,上面的那一点还是很重要的,需要我们牢记在心里;我们继续往下进行,那么我们如何获取一个用户的输入呢?在 export class AppComponent { msg = 'dreamapple'; input1 = ''; showMsg() { alert(this.msg); } keyupHandler1(event:any) { this.input1 = event.target.value; } } HTML模板中添加下面这些: <div> keyup事件,传递原生的event对象 <br> <input (keyup)="keyupHandler1($event)" type="text"> <br> 输入框中的值为: {{input1}} </div> 我们首先来看一下HTML模板中的一些代码,我们使用 还需要注意的是,我们在方法 export class AppComponent { msg = 'dreamapple'; input1 = ''; input2 = ''; showMsg() { alert(this.msg); } keyupHandler1(event:any) { this.input1 = event.target.value; } keyupHandler2(event: KeyboardEvent) { this.input2 = (<HTMLInputElement>event.target).value; } } HTML模板中添加下面的部分: <div> keyup事件,传递原生的event对象,使用强类型 <br> <input (keyup)="keyupHandler2($event)" type="text"> <br> 输入框中的值为: {{input2}} </div> 改变的部分主要是两个部分,首相我们把 练习到这里我们可能会感觉到通过使用 还是和上面一样,我们先来把实例代码写出来,然后慢慢和大家来探讨怎么使用这个模板引用变量 <div> 使用模板引用变量 <br> <input #name1 (keyup)="0" type="text"> <br> 输入框中的值为: {{name1.value}} </div> 这次我们没有在 当然上面那样做,只是能够在页面中显示输入框中的值;如果想要获取到这个值,我们就要做一点点小的改变: export class AppComponent { msg = 'dreamapple'; input1 = ''; input2 = ''; input3 = ''; showMsg() { alert(this.msg); } keyupHandler1(event:any) { this.input1 = event.target.value; } keyupHandler2(event: KeyboardEvent) { this.input2 = (<HTMLInputElement>event.target).value; } keyupHandler3(value: string) { this.input3 = value; } } HTML模板中我们添加下面的代码: <div> 使用模板变量,获取模板变量的值 <br> <input #name2 (keyup)="keyupHandler3(name2.value)" type="text"> <br> 输入框中的值为: {{input3}} </div> 上面的代码应该就比较清楚明了了,下面我们来讲一下事件过滤; 我们可以使用 <div> 使用模板引用变量 <br> <input #name3 (keyup.enter)="0" type="text"> <br> 输入框中的值为: {{name3.value}} </div> 只有当我们按下 还有另一个事件 <div> 使用模板引用变量 <br> <input #name4 (blur)="0" type="text"> <br> 输入框中的值为: {{name4.value}} </div> 学习到了这里,我们可以试着做一个TODO list小应用啦;用到的基本上都是上面所学的知识,还有一些JavaScript的基本知识,这一部分就不多讲啦,先来看看代码部分吧: item = ''; itemList = []; addItem(name) { this.itemList.push({name: name,status: 'not complete'}); } removeItem(id) { this.itemList.splice(id,1); } doneItem(id) { this.itemList[id].status = 'done!'; } 上面的部分是我们添加到 <div> 我们运用上面学的知识,来写一个TODO List小程序;效果如下: <br> <input #item (keyup.enter)="addItem(item.value);item.value=''" type="text"> <button (click)="addItem(item.value)">add</button> <ul> <li *ngFor="let item of itemList; let i= index"> {{item.name}} - 完成度:{{item.status}} <button (click)="removeItem(i)">delete</button> <button (click)="doneItem(i)">done</button> </li> </ul> </div> 运行一下,感觉是不是很酷呢?好啦这一篇文章就先到这里啦. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |