Dashboard-URL-Parameterdelegierung
Die Eigenschaft „Delegierte-URL-Parameter“ aktiviert UIB Seiten mit Dashboard-Komponenten, um zu steuern, wie URL-Parameteraktualisierungen behandelt werden. Dadurch wird anwenderdefinierte Navigationslogik für eingebettete Szenarien oder Arbeitsbereichsszenarien aktiviert.
Standardmäßig aktualisieren Dashboard-Komponenten die Browser-URL automatisch, wenn Anwender Dashboards wechseln, Registerkarten wechseln oder den Bearbeitungsmodus umschalten. Dieses Verhalten funktioniert gut für Standard-Dashboard-Seiten, passt jedoch möglicherweise nicht für alle Implementierungsszenarien.
Die URL-Parameter delegieren Die Eigenschaft bietet einen alternativen Ansatz, bei dem die Dashboard-Komponente Ereignisse sendet, anstatt URLs direkt zu aktualisieren. Mit diesem Delegierungsmechanismus können übergeordnete Seiten anwenderdefinierte Navigationslogik implementieren.
Informationen zu dieser Eigenschaft im Kontext des Konfigurationsbereichs der Dashboard-Komponente finden Sie unter Eigenschaften der Dashboard-Komponente.
Wann die URL-Parameterdelegierung verwendet werden soll
Die URL-Parameterdelegierung ist in diesen Szenarien nützlich:
- Die URL-Struktur der Seite enthält keine Dashboard-URL-Parameter, z. B. „Nein“
sys-IDIm URL-Pfad - Die Seite erfordert anwenderdefinierte Navigationslogik für Dashboard-Changes
- Das Dashboard ist in einen Arbeitsbereich eingebettet, in dem die URL-Verwaltung von der übergeordneten Komponente verarbeitet wird
- Mehrere Dashboard-Komponenten sind auf derselben Seite vorhanden und benötigen eine koordinierte URL-Verarbeitung
Funktionsweise der Delegierung
Wann URL-Parameter delegieren Ist deaktiviert (Standardverhalten):
- Der Anwender führt eine Aktion aus, z. B. das Dashboard wechseln, die Registerkarte ändern oder den Bearbeitungsmodus umschalten
- Die Dashboard-Komponente sendet einen internen
CONTENT_UPDATEDAktion - UIB Framework verarbeitet die Aktion und aktualisiert URL-Parameter automatisch
Wann URL-Parameter delegieren Ist aktiviert:
- Anwender führt eine Aktion aus
- Die Dashboard-Komponente unterdrückt
CONTENT_UPDATEDVersand - Dashboardkomponenten werden gesendet
DASHBOARD#URL_PARAMS_UPDATE_REQUESTEDMit strukturierten Parameterdaten - Client-Skript auf der Seite empfängt das Ereignis und implementiert anwenderdefinierte Navigationslogik
Struktur der Ereignisnutzlast
Die DASHBOARD#URL_PARAMS_UPDATE_REQUESTED Ereignis enthält urlParamsObjekt mit strukturierten Parameterinformationen. Jeder Parameter enthält den Wert, die Beschreibung und zusätzliche Metadaten wie Dashboard-Namen und neue Registerkartenindikatoren.
Dieser strukturierte Ansatz bietet Client-Skripts mit ausreichend Kontext, um fundierte Navigationsentscheidungen zu treffen, einschließlich der Behandlung von Sonderfällen wie dem Öffnen von Dashboards in neuen Browserregisterkarten.
Weitere Informationen zu diesem Ereignis finden Sie unter Ereignisse der Dashboard-Komponente.
Konfigurieren Sie die Parameterdelegierung für Dashboard-URL
Aktivieren Sie die URL-Parameterdelegierung für Dashboard-Komponenten, um anwenderdefinierte Navigationslogik in zu implementieren UIB Seiten.
Vorbereitungen
Erforderliche Rolle: ui_Builder_admin
Warum und wann dieser Vorgang ausgeführt wird
Konfigurieren Sie die URL-Parameterdelegierung, wenn Sie anwenderdefinierte Steuerung darüber benötigen, wie die Dashboard-Navigation Browser-URLs aktualisiert. Dies ist nützlich für eingebettete Dashboards, Arbeitsbereichsszenarien oder Seiten mit nicht standardmäßigen URL-Strukturen.
Prozedur
Ergebnisse
Wenn Anwender mit dem Dashboard interagieren (Dashboards wechseln, Registerkarten ändern, Bearbeitungsmodus umschalten), sendet die Komponente Ereignisse, die Ihr Client-Skript mit anwenderdefinierter Navigationslogik verarbeiten kann.
Client-Skript für Standarddelegierung
Dieses Beispielskript repliziert das standardmäßige URL-Update-Verhalten:
function handler({api, event}) {
const {urlParams} = event.payload;
for (const [key, paramInfo] of Object.entries(urlParams)) {
if (key === 'sysId' && paramInfo.isNewTab === true) {
// Handle new tab navigation
api.emit('NAV_ITEM_SELECTED', {
route: 'dashboards',
title: paramInfo.dashboardName || paramInfo.value,
params: {sysId: paramInfo.value},
navigationOptions: {
navigateExternal: true,
target: '_blank'
}
});
return;
}
// Handle normal navigation
api.emit('CONTENT_UPDATED', {
route: 'dashboards',
params: {[key]: paramInfo.value}
});
}
}