확장할 데이터 작업의 하위 클래스를 선택했으며 필요한 폴더 및 파일을 생성한 경우 새 데이터 작업과 관련된 코드 작성을 시작할 준비가 끝난 것입니다.
%PLUGIN_DEV_DIR%\src\dataaction
에서 새로 생성된 데이터 작업 코드를 찾을 수 있습니다. 파일 및 폴더 구조에 대한 설명은 생성된 폴더 및 파일을(를) 참조하십시오. 편집해야 할 주 파일은 JavaScript 파일입니다. 예를 들어, 사용자정의 데이터 작업 ID가 company.MyDataaction
인 경우 %PLUGIN_DEV_DIR%\src\dataaction\company-mydataaction\mydataaction.js
파일을 찾으면 됩니다.
저장해야 할 추가 속성이 데이터 작업에 있을 경우 Knockout 모델에 관찰 가능 속성으로 해당 속성을 추가해야 합니다. 데이터 작업의 ID가 company.MyDataaction
인 경우 Knockout 모델은 mydataaction.js
의 위쪽에 있는 mydataaction.MyDataActionKOModel
입니다. 기본적으로 이 Knockout 모델은 데이터 작업의 수퍼 클래스에 사용되는 Knockout 모델을 확장하도록 구성되어 있으므로 모델에 필요한 속성을 추가하기만 하면 됩니다.
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
라고도 합니다. Knockout 모델의 수퍼 클래스 중 하나에 의해 처리되는 모든 속성에 대한 값이 이 생성자에 전달됩니다.다음과 유사한 코드로 문자열 및 배열을 추가하여 데이터 작업에 의해 지속되는 속성을 설정합니다.
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);