(更改)angular2 中的事件挂钩
(change) event hook in angular2
我知道 angular2 中的(更改)event Binding
,但我很惊讶为什么我的代码没有按预期工作?
我的代码在这里..
http://plnkr.co/edit/9pSWSeqBc5oaSAtsfwNY?p=preview
当更改事件被调用时,两个条件都没有按预期工作。
(change)="holiday= !holiday && employee= !employee"
第一次调用 change 事件时它工作正常,但第二次它只对第一个条件有效,即 holiday
。在我的示例中,我期望的值是 true 或 false,但与预期不同。
肯定有误。有谁能正确解释一下(change)
事件的生命周期吗?
你应该用 ;
而不是 &&
运算符来分隔它们。
如果第一个表达式出错,它不会计算下一个表达式。
(change)="holiday= !holiday;employee= !employee"
How &&
operator works?
- Suppose
a && b
, if both are true then only it returns true(in short there shouldn't be any false
value otherwise it will return false).
- When evaluating
a && b
code will first check a
value is true
then only the interpreter will goes b
value to evaluate it. If a
value it self is
false
then it don't evaluate(check) b
's value, and a && b
expression will return false
.
之前 holiday= !holiday && employee= !employee
。在初始加载时,holiday
和 employee
都具有 false
值。当您单击 checkbox
时,它计算 holiday= !holiday && employee= !employee
,holiday
和 employee
值都变为 true
。
基本上在第一个 holiday= !holiday
得到评估时的幕后,holiday
变为 true
到 false
& holiday= !holiday
表达式 return 最新值(returns true
),第二个表达式是否做同样的事情 & returns true
.
现在 holiday = true
& employee = true
。当您再次单击该复选框时。它调用更改事件并再次尝试评估 holiday= !holiday && employee= !employee
。
其中 holiday= !holiday
return false
,那么正如我上面提到的 &&
运算符如何工作?。它不关心表达式的下一部分,和 returns false
值。
现在 holiday = false
& employee = true
。如果您再次单击复选框,则 holiday
变成 true
并继续评估表达式的其他部分,employee
从 false
变成 true
.
我知道 angular2 中的(更改)event Binding
,但我很惊讶为什么我的代码没有按预期工作?
我的代码在这里..
http://plnkr.co/edit/9pSWSeqBc5oaSAtsfwNY?p=preview
当更改事件被调用时,两个条件都没有按预期工作。
(change)="holiday= !holiday && employee= !employee"
第一次调用 change 事件时它工作正常,但第二次它只对第一个条件有效,即 holiday
。在我的示例中,我期望的值是 true 或 false,但与预期不同。
肯定有误。有谁能正确解释一下(change)
事件的生命周期吗?
你应该用 ;
而不是 &&
运算符来分隔它们。
如果第一个表达式出错,它不会计算下一个表达式。
(change)="holiday= !holiday;employee= !employee"
How
&&
operator works?
- Suppose
a && b
, if both are true then only it returns true(in short there shouldn't be anyfalse
value otherwise it will return false).- When evaluating
a && b
code will first checka
value istrue
then only the interpreter will goesb
value to evaluate it. Ifa
value it self isfalse
then it don't evaluate(check)b
's value, anda && b
expression will returnfalse
.
之前 holiday= !holiday && employee= !employee
。在初始加载时,holiday
和 employee
都具有 false
值。当您单击 checkbox
时,它计算 holiday= !holiday && employee= !employee
,holiday
和 employee
值都变为 true
。
基本上在第一个 holiday= !holiday
得到评估时的幕后,holiday
变为 true
到 false
& holiday= !holiday
表达式 return 最新值(returns true
),第二个表达式是否做同样的事情 & returns true
.
现在 holiday = true
& employee = true
。当您再次单击该复选框时。它调用更改事件并再次尝试评估 holiday= !holiday && employee= !employee
。
其中 holiday= !holiday
return false
,那么正如我上面提到的 &&
运算符如何工作?。它不关心表达式的下一部分,和 returns false
值。
现在 holiday = false
& employee = true
。如果您再次单击复选框,则 holiday
变成 true
并继续评估表达式的其他部分,employee
从 false
变成 true
.