gpt4 book ai didi

javascript - 如果 true 则点击 ng,如果 false 则解析为 true

转载 作者:行者123 更新时间:2023-11-28 12:21:42 24 4
gpt4 key购买 nike

我有一个ng-click <i> 上的事件标签看起来像这样:

ng-click="parent.Status != 'Open' || (item.Status='Retrospect')"

因此,如果parent.Status不等于Open,则项目Status设置为Retrospect,这没问题。

但是我想要另一次检查,我想看看这个项目是否可编辑,为此我有一个 bool 变量,edit 。我自然是这样写的:

ng-click="parent.Status != 'Open' && edit || (item.Status='Retrospect')"

所以,我认为如果parent.Status不等于Open并且编辑等于true我的item.Status 会更新,问题是无论 edit 都更新了是 true 还是 false (认为这是因为第一次检查是 true,所以它不关心 edit )

我也尝试过这样,但同样的问题:

ng-click="(parent.Status != 'Open' && edit) || (item.Status='Retrospect')"

..使用( )

我错过了什么?这应该不可能吗?

编辑:看起来像这样:

ng-click="parent.Status != 'Open' || (item.Status='Retrospect')"
如果

parent.Status != 'Open' 解析为 false

item.Status 将设置为“Retrospect” ,但问题仍然存在。

此外,我认为这里可能存在一些困惑,我检查是否 parent.Status != 'Open'item.Status='Retrospect' 运行命令 item.Status='Retrospect' 如果 parent.Status != 'Open' 等于 false

我的错好吧,我现在很困惑,但我的代码确实有效,问题是我对 ng-click 的理解true/false评估,我也用过!=而不是!==这可能导致了一些问题。

我会对大部分答案投赞成票(因为你们所有人都是对的,只是我不是)并接受最能帮助我理解的答案。谢谢大家!

最佳答案

此类语句称为短路语句。但根据“||”的规则

statement1 || statement2

在上面,statement1 总是被执行并求值,但statement2 仅当statement1 求值为 false 时才执行。

相反,“&&”的规则是

statement1 && statement2

在上面,statement1 总是被执行并求值,但statement2 仅当statement1 求值为 true 时才执行。

在控制台中检查以下内容 -

var parent = {};
parent.Status = "Close";
var edit = false;
var item = {};
item.Status = ""

parent.Status != 'Open' && edit || (item.Status='Retrospect');

item.Status;

仅当 (parent.Status != 'Open' && edit) 计算结果为 false 时,状态才会更新。

您可以引用-http://sampsonblog.com/tag/short-circuit-evaluation

希望这有帮助。

关于javascript - 如果 true 则点击 ng,如果 false 则解析为 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36618069/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com