延伸資料動作基礎類別

選擇您要延伸的資料動作子類別,並已產生必要的資料夾與檔案之後,就可以開始寫入新資料動作特定的程式碼。

您可以從 %PLUGIN_DEV_DIR%\src\dataaction 底下找到新產生的資料動作程式碼。請參閱產生的資料夾和檔案以取得檔案與資料夾結構的說明。您必須編輯的主要檔案是 JavaScript 檔案。例如,如果您的自訂資料動作 ID 為 company.MyDataaction,則您要尋找的檔案是 %PLUGIN_DEV_DIR%\src\dataaction\company-mydataaction\mydataaction.js

延伸資料動作的剔除模型

如果資料動作具有需要儲存的其他特性,您必須將它們作為可監測特性新增至「剔除模型」。如果提供給資料動作的 ID 為company.MyDataaction,則「剔除模型」的名稱為 mydataaction.MyDataActionKOModel (靠近 mydataaction.js 頂端的位置)。依照預設,會設定此「剔除模型」以延伸資料動作其超級類別所使用的「剔除模型」,因此您只需要新增其他特性至該模型中。

對於延伸 HTTPAPIDataAction 基礎類別的資料動作,請使用類似如下的程式碼:

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);
  • 行 1:此為「剔除模型」的建構子。它接受模型要加以儲存的特性。
  • 行 3:此為超級類別的建構子 (也稱為 baseConstructor),您會將其中一個「剔除模型」其超級類別處理的所有特性值傳送至此建構子。
  • 行 5:這會設定此「剔除模型」類別的超級類別。

使用類似如下的程式碼新增字串和陣列,以設定由資料動作進行保存的特性。

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);