Javascript (更改)angular2中的事件挂钩

Javascript (更改)angular2中的事件挂钩,javascript,events,angular,logical-operators,Javascript,Events,Angular,Logical Operators,我知道angular2中的(更改)事件绑定,但我很惊讶为什么我的代码没有按预期工作 我的密码在这里 调用更改事件时,两个条件均未按预期工作 (更改)=“假日=!假日和员工=!员工” 当第一次调用change事件时,它工作正常,但第二次仅在第一种情况下工作,即假日。在我的示例中,我期望值为true或false,但不是预期值 肯定有些错误。是否有人能正确解释(更改)事件的生命周期?您应该用将它们分开而不是&&运算符 如果第一个表达式出错,它将不会计算下一个表达式 (change)="holiday

我知道angular2中的(更改)
事件绑定
,但我很惊讶为什么我的代码没有按预期工作

我的密码在这里

调用更改事件时,两个条件均未按预期工作

(更改)=“假日=!假日和员工=!员工”

当第一次调用change事件时,它工作正常,但第二次仅在第一种情况下工作,即
假日
。在我的示例中,我期望值为true或false,但不是预期值


肯定有些错误。是否有人能正确解释
(更改)
事件的生命周期?

您应该用
将它们分开而不是
&&
运算符

如果第一个表达式出错,它将不会计算下一个表达式

(change)="holiday= !holiday;employee= !employee"
操作员是如何工作的?

  • 假设
    a&&b
    ,如果两者都为true,则只返回true(简而言之,不应存在任何
    false
    值,否则将返回false)
  • 在计算
    a和
    时,code将首先检查
    a
    值是否为
    true
    ,然后只有解释器将转到
    b
    值对其进行计算。如果
    a
    值为
    false
    则不计算(检查)
    b
    的值和
    a&b
    表达式将返回
    false
  • 在你度假之前!假日和员工=!员工
    。初始加载时,
    holiday
    employee
    都有
    false
    值。当您点击
    复选框时,它会计算
    holiday=!假日和员工=!员工
    假日
    &
    员工
    值变为

    基本上是在第一次度假的时候!假日
    得到评估,
    假日
    变成
    变成
    假日=!holiday
    表达式返回最新值(返回
    true
    ),第二个表达式是否执行相同操作&返回
    true

    现在
    holiday=true
    employee=true
    。再次单击该复选框时。它调用change event&再次尝试评估
    holiday=!假日和员工=!员工
    。 其中
    holiday=!假日
    return
    false
    ,那么正如我上面提到的操作员是如何工作的?。它不关心表达式的下一部分,并返回
    false


    现在
    holiday=false
    employee=true
    。如果再次单击复选框,则
    holiday
    变成
    true
    &继续计算表达式的其他部分,通过该部分
    employee
    变成
    true
    ,感谢它现在的工作。但是我可以知道
    &&
    有什么问题吗?这是第一次,但为什么?@PardeepJain查看更新的答案。你仍然需要任何解释。让我知道。谢谢:)请随意修改语法。我接受编辑。