如何分离 hasRoleName 函数以便其在全球范围内可用,这是 Dynamics CRM 的最佳实践?

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

我对 TypeScript 开发非常陌生,我想实现以下 make

hasRoleName
函数在全局可用,而不是在本地使用我的变量
businessAdvisorRole
作为参数传入,如果不在函数中传递变量的值
"Business Advisor role"
,我想实现最佳实践和干净的代码。请指教,下面是我的代码。这是针对 Dynamics 365 的。

export function checkBusinessAdvisorRole() {

    var businessAdvisorRole = "Business Advisor role";
    isBusinessAdvisorRole = false;

    //Store Security Roles
    var userRoles = Xrm.Utility.getGlobalContext().userSettings.roles;
    var hasRole = false;

    //seperate the function
    userRoles.forEach(function hasRoleName(item, index) {
        //Check passed in value for role[].name match 
        if (item.name === businessAdvisorRole) {
            //match found set return value to true
            isBusinessAdvisorRole = true;
            hasRole = true;

            formContext.getControl<Xrm.Controls.StringControl>("kc_name").setDisabled(false);
        };
    });

}
javascript typescript dynamics-crm typescript2.0
1个回答
0
投票

这可能对你有用:

export function checkBusinessAdvisorRole(roleName: string) {
    //Store Security Roles
    const userRoles = Xrm.Utility.getGlobalContext().userSettings.roles;
    let hasRole = false;

    //seperate the function
    userRoles.forEach(function hasRoleName(item, index) {
        if (item.name === roleName) {
            hasRole = true;
        };
    });

    formContext.getControl<Xrm.Controls.StringControl>("kc_name").setDisabled(!hasRole);
}
© www.soinside.com 2019 - 2024. All rights reserved.