从上周开始,当我尝试应用页面过滤器而没有先设置报表过滤器时,我在控制台上出现错误:未处理的Promise拒绝:无法在'Window'上执行'postMessage':TypeError:无法读取未定义的属性'instanceOfIVisualLevel'无法克隆......
使用该演示可以测试这个:https://microsoft.github.io/PowerBI-JavaScript/demo/v2-demo/index.html#
问题是什么?是否遗漏了演示中的内容?
事实证明,这是Power BI Embedded后端的问题......
使用Power BI嵌入式JavaScript API设置或获取页面级过滤器或可视级过滤器时,客户可能会收到错误。作为一种解决方法,客户可以在load config中传入任何过滤器对象。工程师正在调查这个问题。下次更新@ 9/10/18,太平洋时间上午9:00。
截至本答复时,该问题尚未得到解决,Power BI支持页面指出下一次更新将于9月14日(2018年),太平洋时间10:00举行。
但是,有一个简单的解决方法。确保将空的过滤器数组传入embed配置对象,一切正常。
var embedConfig = {
...
filters: [] //Empty array of filters.
};
var $reportContainer = $('#reportContainer');
var report = powerbi.embed($reportContainer.get(0), embedConfiguration);
然后,您应该能够以您喜欢的顺序显式设置报表/页面/可视过滤器。