关于Angular中template variable reference的疑惑

发布于 2022-09-06 08:29:24 字数 1096 浏览 18 评论 0

大家好,有个奇怪的疑惑如下例:

<input #pin1 type="password">
<p>You entered: {{pin1.value}}</p>

如果在输入框任意输入,下方<p>中内容无变化,说明pin1.value没有值,间接说明#pin1这个variable reference没起到作用?

另一方面我们加一个event binding,立刻有效

<input #pin2 type="password" (input)="test(pin2)">
<p>You entered: {{pin2.value}}</p>
where test=function(x){console.log(x);}

这次输入框任意输入,下方<p>中内容相应变化,证明#pin2这个variable reference开始工作,事实上event handler可以是任意函数,例如:

<input #pin3 type="password" (input)="test()">
<p>You entered: {{pin3.value}}</p>
where test=function(){}

也就是说只要且必须有event binding,variable reference才能起作用,请问这是为什么,另一个测试是:

<input #pin4 type="password" (blur)="test()">
<p>You entered: {{pin4.value}}</p>
where test=function(){}

任意输入无效,输入框失去焦点后立刻有效,所以我推断和event binding有关,与event种类和event handler具体实现无关,但是如何正确解释这个问题?我查看了官方doc也在stack overflow上提问了,可是无人回答= =,希望各位朋友帮忙,非常感谢!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

浅语花开 2022-09-13 08:29:24

我已解决了,感谢~

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文