在我的web应用程序中,我可以添加widget,也可以从confing.json文件中改变widget的权限,但这种改变是永久性的。我希望在运行时使用java-script API来启用或禁用widget的属性,请建议如何做。
这是有可能的。只要用新的配置发布一个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);