一般格式

(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 显然更加适合

youbei
318 声望70 粉丝