(更改)角度 2 中的事件钩子
(change) event hook in angular2
我知道 angular2 中的(更改(event Binding
,但我很惊讶为什么我的代码没有按预期工作?
我的代码在这里。
http://plnkr.co/edit/9pSWSeqBc5oaSAtsfwNY?p=preview
调用更改事件时,不是两个条件都按预期工作。
(change)="holiday= !holiday && employee= !employee"
当第一次调用更改事件时,它工作正常,但第二次它仅适用于第一个条件,即holiday
。在我的示例中,我期望的值为真或假,但与预期不同。
肯定有一些错误。有没有人能正确解释(change)
事件的生命周期?
您应该用;
而不是&&
运算符分隔它们。
如果第一个表达式出错,则不会计算下一个表达式。
(change)="holiday= !holiday;employee= !employee"
&&
操作员如何工作?
- 假设
a && b
,如果两者都为真,那么只有它返回 true(简而言之,不应该有任何false
值,否则它将返回 false(。- 在计算
a && b
代码将首先检查值是否true
a
然后只有解释器会b
值来评估它。如果a
值,它自己是false
,它不会评估(检查(b
的值,并a && b
表达式将返回false
。
在你holiday= !holiday && employee= !employee
之前.在初始负载下,holiday
& employee
都具有false
值。当你点击checkbox
它计算holiday= !holiday && employee= !employee
,holiday
和employee
值都变成true
。
基本上在幕后,当第一个holiday= !holiday
被计算时,holiday
变得true
false
和holiday= !holiday
表达式返回最新值(返回true
(,第二个表达式是否做同样的事情并返回true
。
现在holiday = true
employee = true
。再次单击该复选框时。它调用更改事件并再次尝试评估holiday= !holiday && employee= !employee
。holiday= !holiday
在哪里返回false
,那么正如我上面提到的&&
运算符是如何工作的?它不关心表达式的下一部分,并返回false
值。
现在holiday = false
employee = true
。如果您再次单击复选框,则holiday
结果为true
并继续评估表达的其他部分,employee
通过这些表达式从false
true
。
- Jquery滑块在事件更改时更新值
- Backbone.js ModelBinder将默认事件更改为keyup
- 如何通过一个onclick事件更改两个单独的图像
- 如何使用 OnClick 事件更改结构 JS 的覆盖图像
- 使用事件更改数组的一个元素
- 将函数从点击事件更改为窗口加载
- 将googlemapv3点击事件更改为jquery
- jquery提交表单,带有事件更改按钮
- 如何在单击区域 HREF 标签时创建活动事件(更改 BG 或创建边框)
- 如何在下拉事件更改时使用 jquery 清除或清空列表框
- 如何使用 JavaScript 滚动事件更改 HTML 输入
- 将鼠标悬停事件更改为工具提示的 Onclick 事件
- 表单事件更改不适用于下拉列表选择
- 如何避免在为 dijit/form/TextBox 正确设置值时触发事件“更改”
- 我可以通过beforeSent事件更改jQuery.ajax的函数调用参数(在数据中发送)吗?
- 从 iframe 页面事件更改父级的 css
- 使用 .change Jquery 事件更改内容
- HTML/DOM:鼠标事件更改按钮
- Javascript.使用鼠标悬停事件更改数组中 td 元素的背景颜色
- 谷歌扩展:标签事件 - 更改窗口