Alargar uma Classe Base de Ação de Dados

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.

Alargar o Modelo Knockout da Sua Ação de Dados

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);
  • Linha 1: Este é o criador para o seu Modelo Knockout. Aceita as propriedades que o modelo necessita de armazenar.
  • Linha 3: Este é o criador da superclasse, também conhecido como o baseConstructor ao qual são transmitidos os valores de todas as propriedades processadas por uma das superclasses do Modelo Knockout.
  • Linha 5: Define a superclasse para esta classe 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);