如何通过JavaScript获取Power BI Embedded中视觉对象的默认状态
Power BI Embedded 视觉对象默认状态获取方案
getProperty 方法仅会返回被用户手动修改过的自定义属性值,视觉对象出厂默认的属性值不会被显式存储在实例属性中,所以未修改的属性调用该方法返回null是平台的预期行为。
可行的获取方法如下:
调用
getCapabilities方法读取全量默认属性定义
每个Power BI视觉对象的能力集元数据中,已经内置了所有属性的默认值配置。你可以通过视觉对象实例的getCapabilities()方法获取完整的属性架构,其中objects节点下每个属性对应的defaultValue字段就是该属性的官方默认值。
参考代码实现:// 示例:获取当前报表第一页所有视觉对象的默认属性 report.getPages().then(pages => { // 取当前激活页,也可以按需指定索引 const targetPage = pages.find(page => page.isActive); targetPage.getVisuals().then(visuals => { visuals.forEach(visual => { visual.getCapabilities().then(capabilities => { // 输出当前视觉对象所有属性的默认配置 console.log(`视觉对象${visual.name}的默认属性:`, capabilities.objects); }) }) }) })封装兼容方法获取视觉对象真实生效值
实际业务场景中可以封装统一的属性读取方法,优先调用getProperty获取用户修改后的自定义值,若返回null则自动取getCapabilities中的默认值,以此得到该属性当前的实际生效值。自定义视觉对象适配注意事项
如果你使用的是第三方开发的自定义视觉对象,需要确认开发者是否在视觉对象的capabilities.json配置中为所有自定义属性显式声明了defaultValue。未声明默认值的自定义属性读取时会返回undefined,这类情况需要联系视觉对象的开发者补充配置。
内容的提问来源于stack exchange,提问作者Sastry Chirravuri
相关产品推荐
相关产品推荐

