【问题标题】:Simplify JavaScript in dynamics365在 dynamics 365 中简化 JavaScript
【发布时间】:2021-08-26 08:47:36
【问题描述】:

我在 js 中有一个函数,里面有两个条件检查,我该如何简化它。我在 d365 中使用它

看起来我写了复杂的代码,你能帮忙简化一下

function selectedNeedSupport(executionContext) {
  var formContext = executionContext.getFormContext();
  let selectedItem = formContext.getAttribute("neededsupport").getValue();
  if (selectedItem != null && selectedItem.includes(9)) {
    formContext.getControl("comments").setVisible(true);
    if (selectedItem != null && selectedItem.includes(8)) {
      formContext.ui.tabs.get("tab_Application").setVisible(true);
    } else {
      formContext.ui.tabs.get("tab_Application").setVisible(false);
    }
  } else {
    formContext.getControl("comments").setVisible(false);
    if (selectedItem != null && selectedItem.includes(8)) {
      formContext.ui.tabs.get("tab_Application").setVisible(true);
    } else {
      formContext.ui.tabs.get("tab_Application").setVisible(false);
    }
  }
}

【问题讨论】:

  • 代码似乎检查 selectedItem 是否包含 9,然后还包含 8,对吗?
  • 是的,它检查 9->如果 9 存在则显示一个字段-> 如果 8 存在则显示一个 tab 。可以是两者或任何一个

标签: javascript dynamics-crm dynamic-programming


【解决方案1】:
function selectedNeedSupport(executionContext) {
  const selectedItem = formContext.getAttribute("neededsupport").getValue();
  const formContext = executionContext.getFormContext();
  formContext.getControl("comments").setVisible(selectedItem?.includes(9));
  formContext.ui.tabs.get("tab_Application").setVisible(selectedItem?.includes(8));  
}

【讨论】:

    【解决方案2】:

    你有测试和布尔值。使用测试而不是真假:

    const nine = selectedItem?.includes(9)    
    const eight = selectedItem?.includes(8)
    
    formContext.getControl("comments").setVisible(nine && !eight);
    

    例如

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-26
      • 2020-08-24
      • 2020-06-22
      • 2019-02-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多