如何處理事件
提示
在 Power BI Embedded Analytics 遊樂場的 開發人員沙箱 區段中,使用您自己的報表或我們的範例報表,實時實驗 API。
事件可用來在Power BI元件(例如報表)與Web應用程式程式代碼之間進行通訊。
內嵌元件會在元件內執行動作之後發出事件。 這些可以是用戶互動或元件內的自動化動作(例如正在轉譯的視覺效果)。
例如,當使用者按兩下報表中的按鈕時,Power BI 報表會發出 buttonClicked
事件。 您可以使用 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
事件。 當 Power BI 標誌消失時,載入就會完成。
pageChanged
每當頁面變更時,就會引發 pageChanged
事件。
newPage: Models.IPage
呈現
當報表完全轉譯時,就會引發 rendered
事件。 例如,如果載入報表或用戶互動之後,所有視覺效果都會呈現。
saveAsTriggered
當使用者按兩下 UI 中的 [另存新檔] 時,就會引發 saveAsTriggered
事件。 這可讓您為 另存新檔 動作建立自己的對話方塊。
保存
saved
事件會在UI或 API 中使用 API 的 save
或 saveAs
動作觸發儲存時引發。
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
事件(需要在 settings 物件中將 visualRenderedEvents
設定為 true)。
注意
由於視覺效果可能會因為用戶互動而轉譯,因此建議只有在需要時才開啟此事件。
name: string
如需詳細資訊,請參閱 設定報表設定。
報表內嵌行動事件
報表內嵌行動裝置事件會發出,以便與行動版面配置中的內嵌報表互動,例如撥動的開頭或結尾。
swipeStart 和 swipeEnd 事件
當用戶開始或結束內嵌報表上的撥動移動時,就會引發 swipeStart
或 swipeEnd
事件。
interface ISwipeEvent {
currentPosition: IPosition
startPosition: IPosition
}
interface IPosition {
x: number
y: number
}
儀錶板事件
當儀錶板載入時,以及用戶單擊儀錶板中的磚時,就會發出儀錶板事件。
載入
當儀錶板初始化時,會引發 loaded
事件。
tileClicked
當使用者按兩下磚時,就會引發 tileClicked
事件。 未針對釘選的即時頁面引發。
tileId: string
navigationUrl: string
pageName: string
reportEmbedUrl: string
Q&A 事件
當視覺效果在輸入問題之後呈現時,就會引發問答 (Q&A) 事件。
visualRendered (Q&A)
當輸入問題並顯示答案之後,視覺效果呈現時,就會引發 visualRendered
事件。
question: string
normalizedQuestion: string
磚事件
當使用者按兩下磚時,就會引發 Tile 事件。
tileClicked (磚事件)
當使用者按兩下磚時,就會引發 tileClicked
事件。 未針對釘選的即時頁面引發。
tileId: string
navigationUrl: string
pageName: string
reportEmbedUrl: string
tileLoaded
當磚初始化時,會引發 tileLoaded
事件。 當 Power BI 標誌消失時,載入就會完成。