标识筛选器 API
- 版本 :2023.1(当前版本)
标识筛选器 API
通过“标识筛选器 API”,可以创建一个视觉对象,该视觉对象可以使用语义查询筛选分类数据。
它按数据点而非数学表达式筛选数据。
API 跟踪用户选择以及要显示的数据点。 数据点保存在数组中,并由其在数组中的位置引用。
此 API 在以下方案中非常有用:
对于使用包含键组的数据集的自定义视觉对象
将使用较旧 API(早于 2.2)的视觉对象迁移到新 API
允许使用标识索引数组进行选择
备注
“标识筛选器 API”从 API 版本 5.1 开始提供。若要了解正在使用的版本,请查看 pbiviz.json 文件中的 apiVersion
。
标识筛选器模型基于 IIdentityFilter 接口。
TypeScript复制
private filter: IIdentityFilter = { $schema: “”, filterType: FilterType.Identity, operator: "In", target: [] }
例如,如果视觉对象收到以下数据视图更新:
请注意,该数组的类型为 number[],它包含用户选择的项的标识字段。
identityIndex 对应于数据集的值数组中的值的索引(见下文)。
在上面的示例中:{identityIndex: 0} = "Aaliyah" {identityIndex: 1} = "Aaliyah" {identityIndex: 02 = "Aaliyah" 等
如何使用标识筛选器 API
若要使用标识筛选器 API,powerbi 模型版本需要为 1.9.1 或更高版本。
将以下属性添加为 visual.ts 类的成员。
TypeScript复制
private filter: IIdentityFilter = { $schema: “”, filterType: FilterType.Identity, operator: "In", target: [] }
若要处理 Power BI 更新,请从“VisualUpdateOptions”中的“jsonFilters”读取目标数组,并将其转换为相应的值。 这些是所选的值。 在上面的示例中,[0,10] 的目标数组对应于 Aliyah 和 Abigail 的值。
若要处理用户选择,在上面的示例中,单击第一个 Abigail 应向筛选器目标数组添加值 8,并使用以下命令发送它:
TypeScript复制
this.visualHost.applyJsonFilter(this.filter, "general", "filter", powerbi.FilterAction.merge);
示例 JSON 筛选器
一些示例 JSON 筛选器代码如下所示
示例:标识筛选器 API
以下示例显示视觉对象如何调用筛选器操作。
使用旧 API 迁移视觉对象
从 API 5.1.0 开始,若要支持使用低于 2.2 版本创建的视觉对象的标识筛选器,请将以下行添加到 capabilities.json 文件中:
JSON复制
"migration": { "filter": { "shouldUseIdentityFilter": true } }
这会将所选内容转换为标识筛选器。
备注
此步骤仅适用于使用较旧 API 创建的现有视觉对象。 较新的视觉对象不需要添加此内容。