Basisklasse einer Datenaktion erweitern

Wenn Sie die Unterklasse einer Datenaktion, die Sie erweitern möchten, ausgewählt sowie die erforderlichen Ordner und Dateien generiert haben, können Sie den speziellen Code für die neue Datenaktion schreiben.

Sie finden den neu generierten Datenaktionscode unter %PLUGIN_DEV_DIR%\src\dataaction. Eine Erläuterung der Dateien und Ordnerstruktur finden Sie unter Generierte Ordner und Dateien. Sie müssen hauptsächlich die JavaScript-Datei bearbeiten. Beispiel: Wenn die benutzerdefinierte Datenaktions-ID company.MyDataaction lautet, suchen Sie die Datei %PLUGIN_DEV_DIR%\src\dataaction\company-mydataaction\mydataaction.js.

Knockout-Modell der Datenaktion erweitern

Wenn zusätzliche Eigenschaften für die Datenaktion gespeichert werden sollen, müssen Sie diese als beobachtbare Eigenschaften dem Knockout-Modell hinzufügen. Wenn Ihre Datenaktion die ID company.MyDataaction aufweist, hat das Knockout-Modell den Namen mydataaction.MyDataActionKOModel und befindet sich weiter oben in mydataaction.js. Standardmäßig ist dieses Knockout-Modell zur Erweiterung des Knockout-Modells konfiguriert, das von der Superklasse der Datenaktion verwendet wird. Sie müssen also lediglich zusätzliche Eigenschaften dem Modell hinzufügen.

Verwenden Sie bei einer Datenaktion, die die HTTPAPIDataAction-Basisklasse erweitert, ähnlichen Code wie den Folgenden:

1 - mydataaction.MydataactionKOModel = function (sClass, sID, sName, sVersion, sScopeID, aAnchorToColumns, eValuePassingMode, sURL,
        eHTTPMethod, sPOSTParams)
2 - {   
3 - mydataaction.MydataactionKOModel.baseConstructor.call(this, sClass, sID, sName, sVersion, sScopeID, aAnchorToColumns, eValuePassingMode, sURL, eHTTPMethod, sPOSTParams);
4 - };
5 - jsx.extend(mydataaction.MydataactionKOModel, dataaction.HTTPAPIDataActionKOModel);
  • Zeile 1: Dies ist der Konstruktor für das Knockout-Modell. Er akzeptiert die Eigenschaften, die das Modell speichern muss.
  • Zeile 3: Dies ist der Konstruktor der Superklasse (auch als baseConstructor bezeichnet), an den Sie die Werte für alle Eigenschaften übergeben, die von einer der Superklassen des Knockout-Modells verarbeitet werden.
  • Zeile 5: Legt die Superklasse für diese Knockout-Modellklasse fest.

Verwenden Sie ähnlichen Code wie den Folgenden, um eine Zeichenfolge und ein Array zum Festlegen von Eigenschaften hinzuzufügen, die von der Datenaktion persistiert werden.

1   mydataaction.MydataactionKOModel = function (sClass, sID, sName, sVersion, sScopeID, aAnchorToColumns, eValuePassingMode, sURL, eHTTPMethod, sPOSTParams)
2   {   
3   mydataaction.MydataactionKOModel.baseConstructor.call(this, sClass, sID, sName, sVersion, sScopeID, aAnchorToColumns, eValuePassingMode, sURL, eHTTPMethod, sPOSTParams);
4   
5  
6   // Set Defaults   
7   sMyString = sMyString || "My default string value";   
8   aMyArray = aMyArray || [];     
9  
10
11  // Asserts   
12  jsx.assertString(sMyString, "sMyString");   
13  jsx.assertArray(aMyArray, "aMyArray");
14 
15
16  // Add observable properties   
17  this.sMyString = ko.observable(sMyString);   
18  this.aMyArray = ko.observableArray(aMyArray);
19  };
20  jsx.extend(mydataaction.MydataactionKOModel, dataaction.HTTPAPIDataActionKOModel);