Interfejs API wizualizacji
Wszystkie wizualizacje zaczynają się od klasy, która implementuje IVisual
interfejs. Możesz nazwać klasę tak długo, jak tylko istnieje dokładnie jedna klasa, która implementuje IVisual
interfejs.
Uwaga
Nazwa klasy wizualizacji musi być taka sama jak visualClassName
w pbiviz.json
pliku .
Klasa wizualizacji powinna zaimplementować następujące metody, jak pokazano w poniższym przykładzie:
constructor
— standardowy konstruktor, który inicjuje stan wizualizacjiupdate
— aktualizuje dane wizualizacjigetFormattingModel
, zwraca model formatowania, który wypełnia okienko właściwości (opcje formatowania), w którym można modyfikować właściwości zgodnie z potrzebamidestroy
- standardowy destruktor do oczyszczania
class MyVisual implements IVisual {
constructor(options: VisualConstructorOptions) {
//one time setup code goes here (called once)
}
public update(options: VisualUpdateOptions): void {
//code to update your visual goes here (called on all view or data changes)
}
public getFormattingModel(): FormattingModel {
// returns modern format pane formatting model that contain all format pane components and properties (called on opening format and analytics pane or on editing format properties)
}
public destroy(): void {
//one time cleanup code goes here (called once)
}
}
— konstruktor
Klasa constructor
wizualizacji jest wywoływana po utworzeniu wystąpienia wizualizacji. Można go używać w przypadku dowolnych operacji konfiguracji, których potrzebuje wizualizacja.
constructor(options: VisualConstructorOptions)
VisualConstructorOptions
Te interfejsy są aktualizowane przy użyciu każdej nowej wersji interfejsu API. Aby uzyskać najbardziej zaktualizowany format interfejsu, przejdź do naszego repozytorium GitHub.
Poniższa lista zawiera opis niektórych właściwości interfejsu VisualConstructorOptions
:
element: HTMLElement
— odwołanie do elementu DOM zawierającego wizualizacjęhost: IVisualHost
— kolekcja właściwości i usług, których można użyć do interakcji z hostem wizualizacji (Power BI)IVisualHost
zawiera następujące usługi:createSelectionIdBuilder
— generuje i przechowuje metadane dla wybranych elementów w wizualizacjicreateSelectionManager
— tworzy mostek komunikacyjny używany do powiadamiania hosta wizualizacji o zmianach w stanie wyboru, zobacz Interfejs API wyboru.hostCapabilities
refreshHostData
downloadService
— zwraca rozszerzone informacje o wynikach pobierania.eventService
— zwraca informacje o zdarzeniach renderowania.hostEnv
displayWarningIcon
— zwraca komunikat o błędzie lub ostrzeżeniu.licenseManager
— zwraca informacje o licencji.createLocalizationManager
— generuje menedżera, aby pomóc w lokalizacjiapplyJsonFilter
— stosuje określone typy filtrów. Zobacz interfejs API filtrowaniaapplyCustomSort
— umożliwia niestandardowe opcje sortowania.acquireAADTokenService
— zwraca informacje o uwierzytelnianiu identyfikatora Entra firmy Microsoft.webAccessService
— zwraca stan uprawnień na potrzeby uzyskiwania dostępu do zasobów zdalnych.openModalDialog
— zwraca okno dialogowe.persistProperties
— umożliwia użytkownikom tworzenie ustawień trwałych i zapisywanie ich wraz z definicją wizualizacji, dzięki czemu są one dostępne podczas następnego ponownego ładowaniaeventService
— zwraca usługę zdarzeń do obsługi zdarzeń renderowaniastorageService
— zwraca usługę, aby ułatwić korzystanie z magazynu lokalnego w wizualizacjistorageV2Service
— zwraca usługę, aby ułatwić korzystanie z magazynu lokalnego w wersji 2 w wizualizacjitooltipService
— zwraca usługę etykietki narzędzi, aby ułatwić korzystanie z etykietek narzędzi w wizualizacjitelemetry
drill
launchUrl
— ułatwia uruchamianie adresu URL na następnej karcieauthenticationService
— zwraca token identyfikatora Entra firmy Microsoft.locale
- zwraca ciąg ustawień regionalnych, zobacz LokalizacjainstanceId
— zwraca ciąg w celu zidentyfikowania bieżącego wystąpienia wizualizacjicolorPalette
— zwraca kolorPalette wymagany do zastosowania kolorów do danychfetchMoreData
— obsługuje używanie większej ilości danych niż limit standardowy (1000 wierszy). Zobacz Pobieranie większej ilości danychswitchFocusModeState
- pomaga zmienić stan trybu koncentracji uwagi
update
Wszystkie wizualizacje muszą zaimplementować publiczną metodę aktualizacji, która jest wywoływana za każdym razem, gdy nastąpi zmiana w środowisku danych lub hosta.
public update(options: VisualUpdateOptions): void
VisualUpdateOptions
viewport: IViewport
- wymiary widoku, w których wizualizacja powinna być renderowana w obrębiedataViews: DataView[]
— obiekt widoku danych zawierający wszystkie dane potrzebne do renderowania wizualizacji (wizualizacja zazwyczaj używa właściwości kategorii w widoku DataView)type: VisualUpdateType
— flagi wskazujące typ aktualizowanych danych (Zmiana rozmiaru widokuMode | | danych— Zmiana | rozmiaru styluEnd) |viewMode: ViewMode
— flagi wskazujące tryb wyświetlania wizualizacji (Wyświetl | edycję | inFocusEdit)editMode: EditMode
— flaga wskazująca tryb edycji wizualizacji (ustawienie domyślne | zaawansowane) (jeśli wizualizacja obsługuje tryb AdvancedEditMode, powinna renderować zaawansowane kontrolki interfejsu użytkownika tylko wtedy, gdy tryb editMode jest ustawiony na wartość Zaawansowane, zobacz AdvancedEditMode)operationKind?: VisualDataChangeOperationKind
— flaga wskazująca typ zmiany danych (Utwórz | dołączanie)jsonFilters?: IFilter[]
- kolekcja zastosowanych filtrów jsonisInFocus?: boolean
— flaga wskazująca, czy wizualizacja jest w trybie koncentracji uwagi, czy nie
getFormattingModel (opcjonalnie)
Ta metoda jest wywoływana za każdym razem, gdy otworzymy okienko właściwości lub użytkownik edytuje dowolne właściwości w okienku. Zwraca FormattingModel
wszystkie informacje dotyczące projektowania, hierarchii, właściwości i najnowszych wartości formatowania okienka właściwości.
getFormattingModel(): visuals.FormattingModel;
destroy (opcjonalnie)
Funkcja destroy jest wywoływana, gdy wizualizacja zostanie zwolniona i może służyć do wykonywania zadań oczyszczania, takich jak usuwanie odbiorników zdarzeń.
public destroy(): void
Napiwek
Usługa Power BI zwykle nie wywołuje wywołania destroy
, ponieważ szybciej usuwa cały element IFrame zawierający wizualizację.