为什么这种情况

时间:2017-12-19 17:42:48

标签: javascript if-statement dynamics-crm

有人可以解释这些条件要检查的内容吗?我知道它与检查其他字段是否已被禁用有关,但我并不完全清楚。什么是引用具体的getDisabled方法?

if (!userHasRoleNeeded) {
            Xrm.Page.ui.controls.forEach(function (control, i) {
                if (control && control.getDisabled && !control.getDisabled()) {
                    control.setDisabled(true);

2 个答案:

答案 0 :(得分:2)

如果a && b为“falsey”,

b将无法执行acontrol.getDisabled正在检查control.getDisabled是否为“truthy”(如果存在),如果存在,则会执行该方法。如果没有此检查,如果control.getDisabled不存在,它将尝试执行未定义的方法并引发执行错误。 为什么这是由图书馆作者做出的选择。

进一步阅读:https://j11y.io/javascript/truthy-falsey/

答案 1 :(得分:0)

基本上,我们这样做是为了避免错误,当control.setDisabled(true);代码段尝试禁用" iframe"," webresource" &安培; "子网格"因为这些控件没有disabled属性。