Wie wird das Laden einer Ansicht in CME von Tridion gehandhabt?

8

Ich habe eine Erweiterung des Tridion 2011 Content Manager Explorers, wo ich ein bestimmtes Stück JavaScript nur für eine bestimmte Ansicht ausführen möchte.

Ich mache das mit dem folgenden JavaScript-Fragment:

  %Vor%

Dieser Code hat in der Vergangenheit gut funktioniert und wird definitiv ausgelöst, wenn PublishPopup geöffnet wird und stellt sicher, dass mein Code nur in dieser bestimmten Ansicht ausgeführt wird.

Leider bekomme ich manchmal beim Laden von DashboardView :

folgende Fehlermeldung in der JavaScript-Konsole
  

Uncaught TypeError: Objekt # hat keine Methode 'getId'

Der Fehler verursacht keine Probleme, höchstwahrscheinlich, da Fehler in Event-Handlern vom Tridion UI-Framework korrekt behandelt werden. Aber ich würde es trotzdem bevorzugen, wenn der Fehler nicht in der JavaScript-Konsole angezeigt wird.

Ich verstehe, wie man erkennt, ob die Methode getId existiert:

%Vor%

Aber das würde nur bedeuten, dass der Code niemals ausgeführt wird. Und obwohl es jetzt in PublishPopup gut zu funktionieren scheint, würde ich lieber wissen, wie man mit dieser Art von "mein Code sollte ausgeführt werden, sobald die Ansicht initialisiert wurde" umgehen kann.

Weiß jemand einen besseren Weg, damit umzugehen?

    
Frank van Puffelen 15.10.2012, 17:47
quelle

2 Antworten

5

Nun, es gibt zwei verschiedene Ansichten, die gleichzeitig geladen werden - Dashboard View und Tridion Dashboard View. Die Tridion Dashboard-Ansicht wird angezeigt, wenn Sie in der Multifunktionsleisten-Symbolleiste auf die Registerkarte SDL Tridion klicken. Tatsächlich hat diese Ansicht keine getId-Methode (was seltsam ist, übrigens). Deshalb haben Sie dieses Problem.

Nichtsdestotrotz besteht die ganze Idee hinter den Dateigruppen in der Konfigurationsdatei darin, die Menge des Javascript zu minimieren, die für jede Ansicht geladen wird und die nicht benötigte JavaScript-Verarbeitung zu minimieren. So würde ich empfehlen, Ihre Javascript-Datei in Stücke zu teilen und sie nur aus Notwendigkeit zu laden.

    
Boris Ponomarenko 16.10.2012, 07:35
quelle
6

Haben Sie Code in Ihrer Konfiguration, um nur Ihre Erweiterung in das Popup-Fenster aufzunehmen? Zum Beispiel:

%Vor%

Normalerweise verwende ich diese Konfiguration, um nur Skript für eine bestimmte Ansicht innerhalb des cme auszuführen.

Meine js-Datei sieht dann so aus:

%Vor%     
johnwinter 15.10.2012 18:15
quelle

Tags und Links