Jakmile zvolíte podtřídu akcí s daty, kterou chcete rozšířit, a jsou generované nezbytné složky a soubory, můžete začít psát kód specifický pro novou akci s daty.
Nově generovaný kód akce s daty najdete ve složce %PLUGIN_DEV_DIR%\src\dataaction
. Struktura souborů a složek je vysvětlena v tématu Generované složky a soubory. Hlavní soubor, který musíte upravit, je vytvořen v jazyku JavaScript. Pokud je například identifikátor vaší vlastní akce s daty company.MyDataaction
, pak je hledaným souborem soubor %PLUGIN_DEV_DIR%\src\dataaction\company-mydataaction\mydataaction.js
.
Pokud má akce s daty další vlastnosti, které je nutné uložit, pak je musíte přidat do modelu Knockout jako pozorovatelné vlastnosti. Pokud má akce s daty přiřazen identifikátor company.MyDataaction
, pak je model Knockout volán příkazem mydataaction.MyDataActionKOModel
, který se nachází na začátku souboru mydataaction.js
. Při výchozím nastavení je tento model Knockout konfigurován tak, aby rozšířil model Knockout používaný nadtřídou akce s daty, takže je pouze třeba přidat další vlastnosti do modelu.
Pro akci s daty, která rozšiřuje základní třídu HTTPAPIDataAction
, použijte kód podobný následujícími kódu:
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
a do kterého předáte hodnoty pro všechny vlastnosti zpracovávané jednou z nadtříd modelu Knockout.Pomocí podobného kódu, který je uveden níže, přidáte řetězec a pole do nastavených vlastností, které přetrvají po akci s daty.
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);