在我的 Web 应用程序中,我可以添加小部件,也可以从 confing.json 文件更改小部件的权限,但这种更改是永久性的。我希望在运行时使用 java-script API 以编程方式启用或禁用小部件的属性。请建议如何做。
这是可能的。只需使用 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);