如何處理事件

提示

Power BI Embedded Analytics 遊樂場開發人員沙盒區段中,使用您自己的報表或我們的範例報告,實時試驗 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點選超連結時,就會引發 事件,而超連結的行為會設定為 NavigateAndRaiseEventRaiseEvent

 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

當使用者 saveAsTriggered 在 UI 中按兩下 [另 存新檔 ] 時,就會引發此事件。 這可讓您為 [另 新檔] 動作建立自己的對話框。

已儲存

saved當UI中的或 saveAs 動作或使用 API 觸發save儲存時,就會引發事件。

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 物件中將 設定visualRenderedEventstrue 時,就會引發 事件) 。

注意

由於視覺效果可能會因為用戶互動而轉譯,因此建議只在需要時開啟此事件。

 name: string

如需詳細資訊,請參閱 設定報表設定

報表內嵌行動事件

系統會發出報表內嵌行動事件,以便與行動版面配置中的內嵌報表互動,例如撥動的開頭或結尾。

swipeStart 和 swipeEnd 事件

swipeStartswipeEnd 事件會在用戶開始或結束內嵌報表上的撥動移動時引發。

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 標誌消失時,載入就會完成。

下一步