为什么这种情况

问题描述 投票:1回答:2

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

if (!userHasRoleNeeded) {
            Xrm.Page.ui.controls.forEach(function (control, i) {
                if (control && control.getDisabled && !control.getDisabled()) {
                    control.setDisabled(true);
javascript if-statement dynamics-crm
2个回答
2
投票

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

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


0
投票

基本上我们这样做是为了避免错误,当control.setDisabled(true);片段试图禁用像“iframe”,“webresource”和“subgrid”这样的控件时,因为这些控件没有disabled属性。

© www.soinside.com 2019 - 2024. All rights reserved.