(change) Event Hook In Angular2
Solution 1:
You should separate them with ; instead of && operator.
If first expression goes wrong, it would not evaluate the next expression.
(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 anyfalsevalue otherwise it will return false).- When evaluating
a && bcode will first checkavalue istruethen only the interpreter will goesbvalue to evaluate it. Ifavalue it self isfalsethen it don't evaluate(check)b's value, anda && bexpression will returnfalse.
Before you were having holiday= !holiday && employee= !employee. On initial load both holiday & employee has false value. When you click on the checkbox it evaluates holiday= !holiday && employee= !employee, both holiday & employee value becomes true.
Basically behind the scene when 1st holiday= !holiday get evaluated, holiday becomes true to false & holiday= !holidayexpression return latest value(returns true), whether 2nd expression does the same thing & returns true.
Now holiday = true & employee = true. When you click on the check box again. It calls change event & again try to evaluate holiday= !holiday && employee= !employee.
Where holiday= !holiday return false, so then as I mention above How && operator works?. It doesn't care about the next part of expression, and returns false value.
Now holiday = false & employee = true. If you click on checkbox again, then holiday turns out to true & proceed to evaluate other part of expression by which employee turns out to true from false.
Post a Comment for "(change) Event Hook In Angular2"