根据登录的用户启用或禁用Web Appbuilder小部件。

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

在我的web应用程序中,我可以添加widget,也可以从confing.json文件中改变widget的权限,但这种改变是永久性的。我希望在运行时使用java-script API来启用或禁用widget的属性,请建议如何做。

javascript web-applications arcgis arcgis-js-api arcgis-online
1个回答
0
投票

这是有可能的。只要用新的配置发布一个appConfig对象就可以了。appConfigChanged 事件名称。

这里是一个示例代码,你可以粘贴在chrome控制台,看看它与你的Web AppBuilder项目的工作。

var topic = require('dojo/topic')
function showWidget(widgetId, trueOrFalse) {
    var appConfig = getAppConfig();
    var widgetsFound = appConfig.widgetPool.widgets.filter( widget => widget.id === widgetId );
    if(widgetsFound.length > 1){
        throw Error('More than 1 widget with the same id ' + widgetsFound[0].id + '. ');
    }
    if(widgetsFound.length == 1){
        var widget = widgetsFound[0];
        widget.visible = trueOrFalse;
        topic.publish("appConfigChanged", appConfig, 'attributeChange', {});
    }
}

然后调用:

showWidget(yourWidgetId, false);
© www.soinside.com 2019 - 2024. All rights reserved.