浅谈Angular2.0下的用户输入
来源:互联网 发布:程序员创业方向 编辑:程序博客网 时间:2024/05/21 03:55
我们知道用户输入会触发DOM事件,我们一般通过事件绑定来监听它们,将更新到得数据导入进我们的组件和model。
直接看例子:
用事件绑定实现点击事件处理器。
<button (click)="onclick()">Click Me!</button>
{{clickMessage}}
这是一段很简单的写在templeta里面的代码。等号左边(click)表示把该按钮的点击事件作为绑定目标。angular2.0里的鼠标事件都是采用此类方法的。
等号右边是需要引进的模板语句,其实按正常理解就是方法名。我们通过调用onclick()这个方法来响应这个点击事件。
然后在component里面我们需要这样写:
clickMessage='';
onclick(){
this.clickMessage='You are my hero';
}
这个时候当用户点击按钮时,Angular调用组件的onclick方法。
还介绍第二种情况:通过$event对象获取到用户的输入。也就是当我们的键盘执行某些操作时能将值获取出来。
<input (keyup)="onKey($event)">
<p>{{values}}</p>
这是一段简单的键盘按下的代码。
values='';
onkey(event:any){
this.values+=event.target.value+'|';
}
onkey(event:any)里表示value:type。也就是值:类型。
$event对象的属性都含有不同的类型。这是你如果不知道类型的时候,可以写any。知道如果是字符串就写string。
每一个标准的DOM事件对象都含有一个target属性,代表触发该事件的元素。本例中target是<input>元素对象。event.target .value返回当前元素的内容。
同样的还可以使用event.key;
this.values+=event.key+'|';
效果是这样的。
当然还有一种最简单的方式,从一个模板的引用变量中直接获取用户内容。
<input #b (keyup)="0">
<p>{{b.value}}</p>
这是一种采用模板引用变量的语法特性。可以让我们直接的访问元素。通过标示符#,定义一个模板引用变量。
记得前面说过angular中只有添加和移除。通过调试可以看出。
用这种方式获取的input元素完全没有用到组件。
并且和其他的是 一样的,只有用户做了某些操作,如点击,angular才更新绑定的数据,并最终显示在屏幕上。
并且每一个方法名和变量名都是唯一的。也就是此页面将不会允许出现两处#b。
按照这一种方式,我们就可以不采用$event来获取元素了。
<input #box (keyup)="onkey(box.value)">
<p>{{values}}</p>
values="";
onkey(valueB:string){
this.values+=valueB+'|';
}
同样的你也可以绑定不同的事件,比如按回车才输入的事件
<input #box (keyup.enter)="onEnter(box.value)">
<p>{{value}}</p>
再比如失焦事件:
<input #box (keyup.enter)="update(box.value)" (blur)="update(box.value)">
<p>{{value}}</p>
value='';
update(value:string){
this.value=value;
}
失焦或者键盘enter之后自动将数据显示。
再比如:
<input #box (keyup)=‘add(box.value)" (blur)="add(box.value);box.value=' '">
<ul>
<li *ngFor="let value of valueC">{{value}}</li>
</ul>
组件中这样写:
valueC=['a','b','c'];
add(value:string){
if(value){
this.valueC.push(value);
}
}
首先会自动将valueC里面的三个值添加进去。然后再显示输入的值。
这里需要记住获取输入框的值并将其传递给组件的add,而不是value
- 浅谈Angular2.0下的用户输入
- angular2用户输入的一些事件
- angular2系统学习 - 用户输入
- Angular2的模块架构浅谈
- Angular2的模块架构浅谈
- Angular2的模块架构浅谈
- Angular2的模块架构浅谈
- Angular2的模块架构浅谈
- Angular2的模块架构浅谈
- Angular2的模块架构浅谈
- Angular2的模块架构浅谈
- Angular2的模块架构浅谈
- Angular2.0下实现的modal框
- angular2.0下的依赖注入
- Angular2文档学习的知识点摘要——显示数据、用户输入、表单
- shell实例浅谈之检测用户输入串的合法性
- Struts下的用户输入错误处理
- Webstorm 下的Angular2.0开发之路
- 关于OpenCV读取图片的注意事项
- incompatible integer to pointer conversion assigning to 'BOOL * _Nonnull' (aka 'bool *')from 'int'
- 内存对界
- 如何解决java.lang.SecurityException: Invalid signature file digest for Manifest main attributes
- org.apache.hadoop.ipc.ProtobufEngine
- 浅谈Angular2.0下的用户输入
- jenkins+tomcat
- 添加参考文献及其引用的方法
- ES6解构赋值在react-redux架构上的应用
- ngnix的用户认证
- Android广播机制
- log4j按日分割文件
- 三项正弦表(30值)
- unity3d文件流管理