自上周以来,当我尝试在没有先设置报告过滤器的情况下应用页面过滤器时,我在控制台上收到错误:未处理的承诺拒绝:无法在"窗口"上执行"postMessage":类型错误:无法读取未定义的属性"实例IVisualLevel"无法克隆...
使用演示可以对此进行测试:https://microsoft.github.io/PowerBI-JavaScript/demo/v2-demo/index.html#
- 样本报告
- 点击"运行"
- 点击"互动" 转到"过滤器
- 和切片器",然后单击"设置页面过滤器"
- 单击运行以应用页面筛选器
- 检查浏览器控制台
问题出在哪里?演示中是否缺少某些内容?
事实证明,这是 Power BI 嵌入式后端的问题...
https://community.powerbi.com/t5/Developer/Problem-using-page-getFilters/m-p/511911/highlight/true#M15792
客户在使用 Power BI 嵌入式 JavaScript API 设置或获取页面级筛选器或视觉对象级筛选器时可能会收到错误。作为解决方法,客户可以在加载配置中传入任何筛选器对象。工程师正在调查此问题。下一次更新 @ 9/10/18 在 9:00AM PDT。
但是,截至本答复时,该问题尚未解决,Power BI 支持页面指出下一次更新时间为 9 月 14 日(2018 年(太平洋夏令时 10:00。
但是,有一个非常简单的解决方法。确保将空筛选器数组传入嵌入配置对象,并且一切正常。
var embedConfig = {
...
filters: [] //Empty array of filters.
};
var $reportContainer = $('#reportContainer');
var report = powerbi.embed($reportContainer.get(0), embedConfiguration);
然后,您应该能够以您喜欢的任何顺序显式设置报表/页面/视觉对象筛选器。