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
.
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);
baseConstructor
bezeichnet), an den Sie die Werte für alle Eigenschaften übergeben, die von einer der Superklassen des Knockout-Modells verarbeitet werden.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);