Após ter escolhido a subclasse de ação de dados que pretende alargar e ter gerado as pastas e os ficheiros necessários, está pronto para começar a escrever o código específico da sua nova ação de dados.
Pode encontrar o seu código da ação de dados recém-gerado em %PLUGIN_DEV_DIR%\src\dataaction
. Consulte Pastas e Ficheiros Gerados para obter uma explicação da estrutura de pastas e ficheiros. O ficheiro principal que deve editar é o ficheiro JavaScript. Por exemplo, se a sua ID da ação de dados customizada for company.MyDataaction
, o ficheiro que está a procurar será %PLUGIN_DEV_DIR%\src\dataaction\company-mydataaction\mydataaction.js
.
Se a sua ação de dados tiver propriedades adicionais que é necessário armazenar, deve acrescentá-las como propriedades observáveis ao Modelo Knockout. Se for atribuída a ID company.MyDataaction
à sua ação de dados, o Modelo Knockout terá o nome mydataaction.MyDataActionKOModel
, que está localizado junto ao início do ficheiro mydataaction.js
. Por omissão, este Modelo Knockout está configurado para alargar o Modelo Knockout utilizado pela superclasse da sua ação de dados, pelo que necessita apenas de acrescentar propriedades adicionais ao modelo.
Para uma ação de dados que esteja a alargar a classe base HTTPAPIDataAction
, utilize código semelhante ao seguinte:
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
ao qual são transmitidos os valores de todas as propriedades processadas por uma das superclasses do Modelo Knockout.Utilize código semelhante ao seguinte para acrescentar uma cadeia de caracteres e uma matriz para definir propriedades que a ação de dados torna persistentes.
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);