我正在使用Power BI嵌入式图表,其中包含从Javascript传入的过滤器。由于在数据库中定义了过滤器的方式,可能会以错误的类型应用过滤器(例如,为期望整数的过滤器提供的字符串)。如果发生这种情况,则该过滤器无效且未应用,这意味着用户可能会看到不该看到的信息。
设置图表的代码为:
var powerBiDashboard = powerbi.load(embedContainer, config);
powerBiDashboard.on('error', function () {
console.log('error');
});
powerBiDashboard.on('loaded', function (event) {
console.log('Loaded');
powerBiDashboard.setFilters(
[{ $schema: "http://powerbi.com/product/schema#basic",
filterType: 1,
target:
{ table: "DummyData", column: "Count" },
operator: "In",
values: ["150"],
displaySettings: { isLockedInViewMode: true }
}])
.catch(function (errors) {
console.log(errors);
});
powerBiDashboard.render();
});
(请注意整数过滤器的值“ 150”不正确)
这会在过滤器中生成一个带有以下内容的图表:
...而不是:
如果发生这种情况,我不想显示图表,而是转到错误页面。
所以...我怎么知道过滤器是否无效?错误事件不会在powerBiDashboard对象上触发,并且setFilters方法调用的catch也不会执行。而且在powerBiDashboard对象上找不到任何有帮助的属性。
谢谢。