0

在我的 Web 应用程序中,我可以添加小部件,还可以从 confing.json 文件更改小部件的权限,但这种更改是永久的。我希望在运行时使用 java-script API 以编程方式启用或禁用小部件的属性。请建议如何做到这一点。

4

1 回答 1

0

这是可能的。只需使用appConfigChanged事件名称发布具有新配置的 appConfig 对象。

这是一个示例代码,您可以将其粘贴到 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);
于 2020-05-15T16:43:03.470 回答