Rozšíření základní třídy akcí s daty

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.

Rozšíření modelu Knockout akce s daty

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);
  • Řádek 1: Jedná se o konstruktor pro model Knockout. Přijme vlastnosti, které model potřebuje uložit.
  • Řádek 3: Jedná se o konstruktor nadtřídy, který je také označován jako baseConstructor a do kterého předáte hodnoty pro všechny vlastnosti zpracovávané jednou z nadtříd modelu Knockout.
  • Řádek 5: Nastavuje nadtřídu pro tuto třídu 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);