Angular2:将事件绑定到0意味着什么



我正在从官方指南中学习Angular 2。我偶然发现了以下代码。

@Component({
selector: 'loop-back',
template: `
<input #box (keyup)="0">
<p>{{box.value}}</p>
`
})
export class LoopbackComponent { }

正如您在模板中看到的,keyup事件绑定到0(keyup)="0"。我不明白当一个事件绑定到一个数字时意味着什么。在doc中,它说

代码将keyup事件绑定到数字0,这是最短的模板语句。虽然该语句没有任何用处,但它满足了Angular的要求,因此Angular将更新屏幕。

我也在互联网上搜索过,但找不到任何关于将事件绑定到数字的解释。有人能帮我吗?谢谢

(keyup)="0"

意思是,当该事件发生时,return 0,相当于"什么都不做"。除了根本不添加任何事件绑定之外,没有更简短的方式来表达这一点。

该示例中使用事件绑定来运行更改检测,默认情况下,每次调用事件处理程序时都会运行更改检测。

如果没有事件绑定,就没有事件处理程序,Angular也不会运行更改检测,这将导致{{box.value}}更新值。

我也不清楚,因为我认为Angular会触发任何异步事件的更改检测。例如Angular大学指出:

以下常用的浏览器机制经过修补以支持更改检测:

  • 所有浏览器事件(点击、鼠标悬停、按键等)
  • setTimeout()和setInterval()
  • Ajax请求

但这不是全部事实,因为官方文件说:

Angular只有在应用程序对异步事件(如击键)做出响应时才会更新绑定(从而更新屏幕)。此示例代码将keyup事件绑定到数字0,这是最短的模板语句。虽然该语句没有任何用处,但它满足了Angular的要求,因此Angular将更新屏幕。

因此显然必须在应用程序中处理异步事件才能触发更改检测,因此(keyup)=";0">

最新更新