首页 > 解决方案 > PowerBi-Javascript:如何找出用于设置切片器的 visualName 值?

问题描述

我正在尝试使用 Microsoft 的 PowerBi-Javascript 库在网页中嵌入报告。我想在加载时应用切片器,这取决于我所在的实际页面(因此默认情况下无法在报告中完成)。

图书馆 wiki 通过在传递给嵌入函数的配置中设置切片器来提供一种方法。切片器对象看起来像这样(来自文档https://github.com/Microsoft/PowerBI-JavaScript/wiki/Slicers):

interface ISlicer {
  // Selects a slicer to change.
  selector: SlicerSelector;

 // A new state of the slicer
 state: ISlicerState;
}

interface ISlicerSelector {
  $schema: string;
  visualName: string;
}

我很高兴使用给定的过滤示例设置状态,但我在查找选择器的 visualName 时遇到问题 - 我在界面中看不到它(查看或编辑),我尝试使用我可以看到的名称/标题等,这些都不起作用。

如何找出和/或设置这个 visualName 是什么?

标签: javascriptpowerbipowerbi-embedded

解决方案


我还没有在 UI 中找到查看此内容的方法。希望有比下面更好的方法,但这确实有效。

但是,如果您能够在本地运行一些代码,则可以使用 api 或使用这个库来查找。

在我的例子中,我通过(在本地开发时)找到页面,然后在报告呈现后显示的视觉效果,将数据记录到控制台,并确定哪个视觉效果是我想要的。

就像是:

report.on('rendered', () => {
        report.getPages().then(pages => {
            pages[0].getVisuals().then(visuals => console.log(visuals))
        });
    });

在这种情况下,我只关心第一页。

然后,这会将有关每个视觉对象的一些数据记录到控制台,包括坐标值和视觉名称,因此我能够识别出我感兴趣的对象并查看其视觉名称属性。

令人困惑的是,visualName 属性看起来更像一个 id(尽管不是 guid)。


推荐阅读