Angular用户输入
用户输入
事件绑定
使用
- (event)
- on-event
概念
用户操作 -> DOM事件
- 用户操作
- 点击链接
- 按下按钮
- 输入文字
- DOM事件
- $event
- 类型
- any
- 不能推测属性
- 可能导致错误
- 指定类型
- 组件需要了解过多的模板细节
- 违反了分离关注原则
- any
- 标准的HTML DOM事件
- 有target属性
- 类型
- $event
示例
模板
<button (click)="OnClickMe()">non $event</button>
<!--
$event传参
keyup -> 键盘按下并松开 事件
-->
<input on-keyup="onKey($event)" />
组件
inputContent = '';
inputKey = '';
onKey(event: any): void {
this.inputContent += event.target.value + '|';
this.inputKey += event.key + '|';
}
// 指定事件类型
onKey(event: KeyboardEvent): void {
// $event.target -> HTML元素
// 转换元素类型 -> 不是每个元素都有value
// HTMLInputElement.value -> 当前输入框的内容
this.inputContent += (event.target as HTMLInputElement).value + '|';
// key -> 按下的键
this.inputKey += event.key + '|';
}
模板变量
使用方式
name
- ref-name
实例
模板
<!--
响应了异步事件(按键)-> 触发绑定更新机制 -> 视图刷新
极简写法 (keyup) = "0"
-->
<input #inputElement (keyup)="0"/>
<p>{{inputElement.value}}</p>
<!--
优点:
无需了解$event及其结构
组件从模板获取的是干净的信息
-->
<input ref-input (keyup)="onKey(input.value)" />
<p></p>
组件
inputContent = '';
onKey(value: string): void {
this.inputContent += value + '|';
}
事件筛选
事件处理器 event-handler
模板
<input (keyup)="onKey($event)" />
{{inputContent}}
组件
inputContent = '';
onKey(event: KeyboardEvent): void {
if (event.key === 'Enter'){
this.inputContent += (event.target as HTMLInputElement).value + '|';
}
}
伪事件 pseudo-event
不存在DOM事件,属于angular的语法糖
模板
<input #input (keyup.enter)="onKey(input.value)" />
{{inputContent}}
组件
inputContent = '';
onKey(value: string): void {
this.inputContent += value + '|';
}
失焦事件 blur-event
鼠标聚焦到其他位置时,引发的操作
模板
<input #input (keyup.enter)="onKey(input.value)" (blur)="onKey(input.value)" />
{{inputContent}}
组件
inputContent = '';
onKey(value: string): void {
this.inputContent += value + '|';
}
总结
适用于小规模的输入,如果大型输入使用双向绑定-NgModel更简单优雅。
Angular用户输入的更多相关文章
- Angular2 表单(一) 用户输入
绑定到用户输入事件 等号左边的 (click) 表示把按钮的点击事件作为绑定目标. 等号右边引号中的文本是模板语句,通过调用组件的 onClickMe 方法来响应这个点击事件. <button ...
- 防御XSS攻击-encode用户输入内容的重要性
一.开场先科普下XSS 跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS.恶 ...
- python学习笔记(基础二:注释、用户输入、格式化输出)
注释 单行:# 多行:上下各用3个连续单引号或双引号 3个引号除了多行注释,还可以打印多行 举例: msg = ''' name = "Alex Li" name2 = name ...
- 第4章 Java接收用户输入
第4章 Java接收用户输入 1.输入 使用Scanner工具类可以换取用户输入的数据Scanner类位于java.util包中,使用时需要导入此包使用步骤: 1.导入java.util.Scanne ...
- Python学习【第四篇】用户输入及判断
用户输入: 例1.写一个用户输入密码的小程序,流程如下: 1.用户输入自己的用户名 2.打印"Hello+用户名" #!/usr/bin/env python #name = ra ...
- 使用scanner工具类来获取用户输入的信息
使用scanner工具类来获取用户输入的成绩信息. 步骤:1.导入java.util.Scanner包 2.创建Scanner对象 3.接受并保存用户输入的值 例子:通过用户输入来获取学生成绩 pac ...
- alertDialog创建登陆界面,判断用户输入
alertDialog创建登陆界面,需要获取用户输入的用户名和密码,获取控件对象的时候不能像主布局文件那样获得, 需要在onClickListener中获取,代码如下: public boolean ...
- Asp.Mvc中的text实现 辅助用户输入 灰色字体
在开发Web应用程序中经常需要用户在文本框输入信息,为了提高程序人性化设置以及用户体验效果常常需要在文本框中显示灰色字体辅助用户输入 如:
- python学习道路(day1note)(变量,注释,用户输入,格式化输出,if,while,for循环并扩展练习)
python是一门动态解释性的强类型定义语言,其应用范围非常之广 1:进入python语言 #!/usr/bin/env python #_*_coding:utf-8_*_ print(" ...
随机推荐
- 《JVM G1源码分析和调优》读书笔记
GC的相关算法与JVM的垃圾收集器 GC的相关算法 分代管理 复制算法 标记清除 标记压缩 JVM垃圾收集器 P242 表11-1 不同类型垃圾回收期比较 串行收集器 Serial. Serial G ...
- CVE-2020-0796“永恒之黑”漏洞复现
0x00 漏洞概述 Microsoft Server Message Block 3.1.1(SMBv3)协议在处理某些请求的方式中存在代码执行漏洞.攻击者可以精心构造数据包发送到SMB服务器,无需经 ...
- Debug很重要
之前做一个小功能,就是用php发送邮件,项目中已经使用了wordpress的wp_mail,所以同事建议我继续用wp_mail函数. 然而遇到了一个奇怪的情况,邮件没有发出去,也没有任何报错日志. 照 ...
- 图片降噪(Scipy)
以登月图片为例,通过使用Scipy 傅立叶变换,实现图片消噪 scipy.fftpack模块用来计算快速傅里叶变换速度比传统傅里叶变换更快,是对之前算法的改进图片是二维数据,注意使用fftpack的二 ...
- Android 本地缓存Acache的简单使用
设置缓存数据: ACache mCache = ACache.get(this); mCache.put("key1", "value"); //保存6秒,如果 ...
- python中a, b = a, a + b这条语句是如何执行的?
a,b=b,a+b,这条语句在"理解"上还是与C语言有些差别的.在Python中,可以做下面的方式理解:首先,把等号右边的算式分别算完再说,然后按照一一对应的关系把值赋给等号左边的 ...
- Java动态代理(二)——jdk动态代理
一.什么是动态代理?代理类在程序运行时创建的代理方式被成为动态代理.动态代理的代理类并不是在Java代码中定义的,而是在运行时根据我们在Java代码中的“指示”动态生成的.相比于静态代理, 动态代理的 ...
- 2020重新出发,MySql基础,MySql视图&索引&存储过程&触发器
@ 目录 视图是什么 视图的优点 1) 定制用户数据,聚焦特定的数据 2) 简化数据操作 3) 提高数据的安全性 4) 共享所需数据 5) 更改数据格式 6) 重用 SQL 语句 MySQL创建视图 ...
- Qt QTranslator 实现多语言转换
1.在*.pro文件里面添加TRANSLATIONS += English.tsChinese.ts根据自己想要添加多少种语言和什么语言视情况添加. 2.a.通过qt ui设计师添加的文字 首先记得选 ...
- 让“不确定性”变得有“弹性”?基于弹性容器的AI评测实践
0. 前言 AI的场景丰富多彩,AI的评价方法百花齐放,这对于设计一套更通用的评测框架来说,是一个极大的挑战,需要兼顾不同的协议,不同的模型环境,甚至是不同的操作系统.本文分享了我们在AI评测路上的一 ...