如何处理事件
提示
使用你自己的报表或我们在 Power BI Embedded Analytics Playground 的开发人员沙盒部分中的示例报表实时试验 API。
事件用于在 Power BI 组件 (例如报表) 和 Web 应用程序代码之间进行通信。
嵌入组件在组件内执行操作后发出事件。 这些可以是用户交互或自动化操作, (如在组件内呈现的视觉对象) 。
例如, buttonClicked
是当用户单击报表中的按钮时 Power BI 报表发出的事件。 可以使用 侦听事件 report.on(...)
,然后设置事件处理程序。
如何处理事件的示例
此示例演示如何处理报表事件。 若要了解其他类型的事件,请参阅 事件及其响应值。
注意
使用 API 之前,请等待组件加载。 侦听加载的事件,然后发出新命令。
report.on('loaded', function(event)
{
reportPages = await report.getPages();
});
如何删除事件处理程序
可以使用 report.off(...)
删除特定事件的所有事件处理程序。
事件及其响应值
查看可能事件及其响应值的完整列表。
错误事件 (与所有嵌入) 相关
发出错误事件来描述失败的操作。
interface IError {
message: string // A general message that describes the operation that failed (example: "Could not set page")
detailedMessage?: string // Detailed message that describes the error
errorCode?: string // Short message that describes the error
level?: TraceType // The level of the error (example: 'Fatal')
technicalDetails?: ITechnicalDetails
}
interface ITechnicalDetails {
requestId?: string // Id for debugging - should be provided when reporting a bug
}
注意
message
只有 属性是必需的,其他属性可能未定义。
报告事件
为与嵌入报表的交互发出报表事件,例如单击报表按钮或呈现视觉对象。
buttonClicked
buttonClicked
当用户单击“报表”按钮时,将引发 该事件。
id: string
title?: string
type?: string (type of button)
bookmark?: string
commandTriggered
commandTriggered
当用户单击扩展命令时,将引发 该事件。
command: string
dataPoints?: IIdentityValue[]
report: models.IReport
page: models.IPage
visual: models.IVisual
dataHyperlinkClicked
单击 dataHyperlinkClicked
超链接且 超链接的行为 设置为 NavigateAndRaiseEvent
或 RaiseEvent
时,将引发 事件。
url: string
report: models.IReport
page: models.IPage
visual: models.IVisual
有关详细信息,请参阅 配置报表设置。
dataSelected
选择 dataSelected
特定数据点时,将引发 事件。
report: models.IReport
page: models.IPage
visual: models.IVisual
filters: IFilter[]
dataPoints: IIdentityValue[]
loaded
当 loaded
报表初始化时,将引发 该事件。 当 Power BI 徽标消失时,加载完成。
pageChanged
pageChanged
每当更改页面时,将引发 该事件。
newPage: Models.IPage
呈现
当 rendered
报表完全呈现时,将引发 该事件。 例如,如果在加载报表时或在用户交互后呈现所有视觉对象。
saveAsTriggered
saveAsTriggered
当用户在 UI 中单击“另存为”时,将引发 该事件。 这样,便可以为 “另存为 ”操作创建自己的对话框。
已保存
当 saved
保存由 save
UI 中的 或 saveAs
操作触发或使用 API 时,将引发 该事件。
selectionChanged
selectionChanged
每当用户更改所选视觉对象时,将引发 该事件。
selectedItems
是选中多个视觉对象时所有选定视觉对象的列表。
report: models.IReport
page: models.IPage
visual?: models.IVisual
selectedItems?: models.IVisual[]
visualClicked
visualClicked
每次单击视觉对象时都会引发 该事件。
report: models.IReport
page: models.IPage
visual: models.IVisual
visualRendered
visualRendered
当呈现视觉对象时, (需要在设置对象) 中将 设置为 visualRenderedEvents
true 时引发 该事件。
注意
由于视觉对象可能因用户交互而呈现,因此建议仅在需要时启用此事件。
name: string
有关详细信息,请参阅 配置报表设置。
报表嵌入移动事件
为与移动布局中的嵌入报表交互(例如轻扫的开始或结束)而发出报表嵌入移动事件。
swipeStart 和 swipeEnd 事件
swipeStart
当用户开始或结束对嵌入报表的轻扫移动时,将引发 或 swipeEnd
事件。
interface ISwipeEvent {
currentPosition: IPosition
startPosition: IPosition
}
interface IPosition {
x: number
y: number
}
仪表板事件
加载仪表板时,当用户单击仪表板中的磁贴时,将发出仪表板事件。
loaded
当loaded
仪表板初始化时,将引发 该事件。
tileClicked
tileClicked
当最终用户单击磁贴时,将引发 该事件。 对于固定的实时页面,它不会引发。
tileId: string
navigationUrl: string
pageName: string
reportEmbedUrl: string
Q&A 事件
在输入问题后呈现视觉对象时,将引发 (Q&A) 事件。
visualRendered (Q&A)
在 visualRendered
输入问题并显示答案后呈现视觉对象时,将引发 该事件。
question: string
normalizedQuestion: string
磁贴事件
当用户单击磁贴时,将引发磁贴事件。
tileClicked (磁贴事件)
tileClicked
当最终用户单击磁贴时,将引发 该事件。 对于固定的实时页面,它不会引发。
tileId: string
navigationUrl: string
pageName: string
reportEmbedUrl: string
tileLoaded
当 tileLoaded
磁贴初始化时,将引发 该事件。 当 Power BI 徽标消失时,加载完成。