Angular 8 事件绑定

Angular 事件绑定

一般格式

(event)="模板语句"

例如:

(click)="onClick()"

(click)="hidden=false"

两种写法都是合法的

$event 对象

$event 对象为 DOM 事件对象,一般经常使用到 event.target.value 获取当前元素的值。

$event 包含大量的信息,而其实绝大多数情况下,我们仅仅需要使用 event.target.value,因此,应该尽量避免使用 $event 传递值。

当你使用 $event 对象时需要注意, $event 对象总是有一个对应的类型,所以并不推荐到处使用 any 类型来偷懒,如果不知道类型所对应的名称是什么,可以尝试打印 typeof event 查看。

使用 $event 的小例子:

<input (keyup)="onKey($event)">

#var 模板引用变量

我们在 Angular 组件 中已经使用过了 模板引用变量。

模板引用变量的感觉比较像 DOM 元素变量化。

<input #box (keyup)="onKey(box.value)">

如此就可以将 box 作为 DOM 元素本身来使用了,相对于 $event ,代码更加 “可读”。

绑定 “enter 事件”

<input #box (keyup.enter)="onEnter(box.value)">

自定义组件事件

.html

<input #textbox type="text" (keyup)="onKeyUp(textbox.value)">

.ts

@Output("onKeyUp") keyUp: EventEmitter<string> = new EventEmitter();

public onKeyUp(v: string): void {
  console.log(v);
}

使用

.html

<b-input (onKeyUp)="onKeyUp($event)"></b-input>

.ts

public onKeyUp(v: string): void {
  console.log(v);
}

当使用我们通过 emit 传递的值时, $event 显然更加适合

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  •   JavaScript 与 HTML 之间的交互是通过事件实现的。   事件,就是文档或浏览器窗口中发生的一些特...
    霜天晓阅读 8,863评论 1 11
  • 学习资料来自 Angular.cn 与 Angular.io。 模板语法 在线例子 在 Angular 中,组件扮...
    小镭Ra阅读 9,223评论 0 3
  • core package 概要:Core是所有其他包的基础包.它提供了大部分功能包括metadata,templa...
    LOVE小狼阅读 7,564评论 0 3
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 13,800评论 1 32
  • AngularJS是什么?AngularJs(后面就简称ng了)是一个用于设计动态web应用的结构框架。首先,它是...
    200813阅读 5,559评论 0 3