Angular 2 用户输入

用户点击链接、按下按钮或者输入文字时,这些用户的交互行为都会触发 DOM 事件。

本章中,我们将学习如何使用 Angular 事件绑定语法来绑定这些事件。

以下Gif图演示了该实例的操作:

源代码可以在文章末尾下载。

绑定到用户输入事件

我们可以使用 Angular 事件绑定机制来响应任何 DOM 事件 。

以下实例将绑定了点击事件:

点我!

等号左边的 (click) 表示把该按钮的点击事件作为绑定目标 。 等号右边,引号中的文本是一个 模板语句

完整代码如下:

app/click-me.component.ts 文件:

import{Component}from'@angular/core';

@Component({selector:'click-me',template: `

点我!{{clickMessage}}`})exportclassClickMeComponent{clickMessage='';onClickMe(){this.clickMessage='菜鸟教程!';}}

通过 $event 对象取得用户输入

我们可以绑定到所有类型的事件。

让我们试试绑定到一个输入框的 keyup 事件,并且把用户输入的东西回显到屏幕上。

app/keyup.component.ts (v1) 文件:

@Component({selector:'key-up1',template: `

{{values}}

`})exportclassKeyUpComponent_v1{values='';/*// 非强类型

onKey(event:any) {

this.values += event.target.value + ' | ';

}*///强类型onKey(event:KeyboardEvent){this.values+=(event.target).value+'|';}}

以上代码中我们监听了一个事件并捕获用户输入,Angular 把事件对象存入 $event 变量中。

组件的 onKey() 方法是用来从事件对象中提取出用户输入的,再将输入的值累加到 values 的属性。

从一个模板引用变量中获得用户输入

你可以通过使用局部模板变量来显示用户数据,模板引用变量通过在标识符前加上井号 (#) 来实现。

下面的实例演示如何使用局部模板变量:

app/loop-back.component.ts 文件:

@Component({selector:'loop-back',template: `

{{box.value}}

`})exportclassLoopbackComponent{}

我们在 元素上定义了一个名叫 box 的模板引用变量。

box 变量引用的就是 元素本身,这意味着我们可以获得 input 元素的 value 值,并通过插值表达式把它显示在

标签中。

我们可以使用模板引用变量来修改以上 keyup 的实例:

app/keyup.components.ts (v2) 文件:

@Component({selector:'key-up2',template: `

{{values}}

`})exportclassKeyUpComponent_v2{values='';onKey(value:string){this.values+=value+'|';}}

按键事件过滤 ( 通过 key.enter)

我们可以只在用户按下回车 (enter) 键的时候才获取输入框的值。

(keyup) 事件处理语句会听到每一次按键,我们可以过滤按键,比如每一个 $event.keyCode,只有在按下回车键才更新 values 属性。

Angular 可以为我们过滤键盘事件,通过绑定到 Angular 的 keyup.enter 伪事件监听回车键的事件。

app/keyup.components.ts (v3):

@Component({selector:'key-up3',template: `

{{values}}

`})exportclassKeyUpComponent_v3{values='';}

blur( 失去焦点 ) 事件

接下来我们可以使用blur( 失去焦点 ) 事件,它可以再元素失去焦点后更新 values 属性。

以下实例同时监听输入回车键与输入框失去焦点的事件。

app/keyup.components.ts (v4):

@Component({selector:'key-up4',template: `

{{values}}

`})exportclassKeyUpComponent_v4{values='';}

本文所使用的源码可以通过以下方式下载,不包含 node_modules 和 typings 目录。

angular4输入有效性_Angular 2 用户输入相关推荐

  1. winform定义数据源名称_winform ComboBox自定义数据源实现用户输入时出现与用户输入匹配的项...

    ComboBox自定义数据源实现用户输入时出现与用户输入匹配的项using System; using System.Collections.Generic; using System.Compone ...

  2. 编写一个程序重复提示用户输入一个国家的首都,一旦收到用户的输入,程序报告用户输入的答案是否正确,假设将50个国家的首都存放在一个字典中,程序提示用户回答所有国家的首都并且显示回答正确的总个数。

    ''' 林岸花明 编写一个程序读入一个Python源程序并统计文件中每个关键字出现的次数. 2.编写一个程序重复提示用户输入一个国家的首都,一旦收到用户的输入,程序报告用户输入的答案是否正确,假设将5 ...

  3. python让用户输入字符串_当用户输入字符串而不是整数时,如何保护我的python代码?...

    看看我对您的代码所做的更改,如下所示: def add (x, y): return(x + y) def subtract(x, y): return(x - y) def multiply(x, ...

  4. python请输入_不断提示用户输入Python

    通过封装程序的每个步骤,您可以消除所有三个功能需求.我们将让main控制循环,并通过将数据传入和传出函数调用来控制流,而不是将循环放在函数内部. 让我们重新设计一下input_numbers()函数. ...

  5. python 循环输入_python入门(用户输入和while循环)

    用户输入和while循环 关于用户输入的事其实我们之前就有提到过,不过没有花时间去细讲,今天我们就花点时间来解决一下它. 首先我们需要知道的是用户输入是什么?顾名思义,用户输入就是指用户需要在输出处输 ...

  6. python如何让用户输入_Python如何让用户输入

    从命令行接收用户的输入数据,需要使用input函数.input函数接收一个字符串类型的参数,用于作为输入的提示.input函数的返回值就是用户在命令行中录入的值.不管用户录入什么数据,input函数都 ...

  7. python用户输入文字_python中用户输入的关键字

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! python识别用户输入中的某些关键字,然后导出答案. 例如,用户输入 ther ...

  8. c语言处理用户错误输入,C语言实现用户输入

    用户输入一个字符串然后回车表示结束.因为用户在输入的过程中长度是不确定的,所以要求自己使用的循环写的更好.在这里自己写了一个代码,效率不高,相对来说如果能模拟出C++中的vector向量可能会好一些. ...

  9. java判断键盘输入小数_java判断用户输入的是否至少含有N位小数的实例

    java判断用户输入的是否至少含有N位小数的实例 判断用户输入的是否至少含有N位小数. 1.当用户输入的是非数字时抛出异常,返回false. 2.当用户输入数字是,判断其数字是否至少含有N位小数,如果 ...

最新文章

  1. myeclipse10.7激活
  2. .NET分布式缓存Redis从入门到实战
  3. 某猪微店状元分销V2.0钻石版-全开源纯净安装版
  4. 【Java】冒泡排序
  5. 分布式链路跟踪中的traceid和spanid代表什么?
  6. python编程入门到实践笔记-python基础(《Python编程:从入门到实践》读书笔记)...
  7. python urllib3 post ssl,python post https报错解决方案
  8. php 测试数据整数,PHP中将字符串转化为整数(int) intval() printf() 性能测试
  9. 2021信息安全工程师考试汇总--1220更新考试结果
  10. matlab 折线图 标记_matlab画折线图标记线
  11. QQ空间利用代码自动删除说说
  12. 华为HG8245C光猫破解用户连接数限制
  13. 经典的传染病模型简介 + SIS情况分析
  14. SPSS神经网络心得(二)
  15. win10电脑插入U盘不显示U盘盘符怎么办?
  16. 学生每日计划表_初三学生逆袭每日计划表
  17. Unity3D手游开发实践《腾讯桌球》客户端开发经验总结
  18. Spring Boot---(10)SpringBoot整合RabbitMQ
  19. Word文档如何进行字数统计
  20. 计算机网络常见英文缩写词语

热门文章

  1. oracle错误12637,TNS-12537 TNSconnection closed ORA-609错误处理
  2. 【OS学习笔记】三十四 保护模式十:中断和异常区别
  3. 数论考试题(b) 求约数的约数的最大个数
  4. ubuntu解压缩zip/tar/tar.gz/tar.bz2
  5. winform改变启动界面
  6. 《Java技术》第八次作业
  7. ecshop 函数列表大全
  8. 996. Number of Squareful Arrays
  9. 784. Letter Case Permutation
  10. [Leetcode][第1392题][JAVA][最快乐前缀][KMP][字符串编码]