選擇您要延伸的資料動作子類別,並已產生必要的資料夾與檔案之後,就可以開始寫入新資料動作特定的程式碼。
您可以從 %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);
baseConstructor
),您會將其中一個「剔除模型」其超級類別處理的所有特性值傳送至此建構子。使用類似如下的程式碼新增字串和陣列,以設定由資料動作進行保存的特性。
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);