- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有这个变量,如果某些东西可以被编辑或看起来不像这样,它会切换
enabled: !(parseInt("@Model.Status") === @((int)Status.Active) ||
!(parseInt("@Model.Status") === @((int)Status.Expired)) && '@Model.EditMode' === 'True'),
出于某种原因,如果这适用于状态为 active
而不是 expired
的状态,如果我将其转过来并将 expired
放在第一位适用于 expired
但不适用于 active
....所以我在这里错了有人认为如果状态是 Expired
或 Active
enabled 应该是 false 这样它就不能被编辑所有其他状态应该没问题。
我也试过这样写,第二条语句用括号括起来
!((parseInt("@Model.Status") === @((int)Status.Expired))
像这样反转 if 但都没有解决它
(parseInt("@Model.Status") !== @((int)Status.Expired)
Pointy 的精彩评论!但不幸的是,这也不是这里的问题,因为即使我跳过整个 && 运算符,我仍然遇到同样的问题
!(parseInt("@Model.Status") === @((int)Status.Active) || !(parseInt("@Model.Status") === @((int)Status.Expired)))
还是一样的问题
最佳答案
你的条件好像不对。 !(parseInt("@Model.Status") === @((int)Status.Active) || !(parseInt("@Model.Status") === @((int)Status.Expired )) && '@Model.EditMode' === '真')
可以看作是 !(a || !(b) && c)
其中
a = parseInt("@Model.Status") === @((int)Status.Active)
b = parseInt("@Model.Status") === @((int)Status.Expired)
c = '@Model.EditMode' === 'True'
AND 运算符 (&&
) 比 ||
具有更高的优先级,因此实际的评估顺序可以使用分组显示为 !(a || ( !(b) && c))
与 2 + 3 * 4
计算为 2 + (3 * 4)
的方式相同。
但是,呈现的逻辑与要求不符。状态应该是“事件”或“已过期”以外的任何内容, 编辑模式应该是“True”。然而,括号不匹配可能是由于打字错误造成的,因为整个逻辑表达式被否定,而且第二个条件也被否定,但它不应该被否定。
正确的逻辑表达式是!(a || b) && c
。替换逻辑测试:
!(parseInt("@Model.Status") === @((int)Status.Active) || parseInt("@Model.Status") === @((int)Status.Expired) &&
'@Model.EditMode' === 'True'
我不熟悉 Kendo,但如果可以使用 !==
则可以通过删除一些括号来简化表达式。根据De Morgan's laws !(a || b)
等同于 !a && !b
,因此如果我们执行该替换,我们将得到 !a && !b && c
。如果我们也从 !(parseInt("@Model.Status") === @((int)Status.Active))
更改为 parseInt("@Model.Status") ! == @((int)Status.Active)
然后我们得到:
parseInt("@Model.Status") !== @((int)Status.Active) &&
parseInt("@Model.Status") !== @((int)Status.Expired) &&
'@Model.EditMode' === 'True'
关于javascript - 逻辑运算符 ||不知何故没有给出预期的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58080012/
这个问题在这里已经有了答案: How to get all enum values in Java? (8 个回答) 关闭5年前。 我想创建一个 JComboBox 来处理选择给它的任何 Enum。为
我是一名优秀的程序员,十分优秀!