데이터 작업 기본 클래스 확장

확장할 데이터 작업의 하위 클래스를 선택했으며 필요한 폴더 및 파일을 생성한 경우 새 데이터 작업과 관련된 코드 작성을 시작할 준비가 끝난 것입니다.

%PLUGIN_DEV_DIR%\src\dataaction에서 새로 생성된 데이터 작업 코드를 찾을 수 있습니다. 파일 및 폴더 구조에 대한 설명은 생성된 폴더 및 파일을(를) 참조하십시오. 편집해야 할 주 파일은 JavaScript 파일입니다. 예를 들어, 사용자정의 데이터 작업 ID가 company.MyDataaction인 경우 %PLUGIN_DEV_DIR%\src\dataaction\company-mydataaction\mydataaction.js 파일을 찾으면 됩니다.

데이터 작업의 Knockout 모델 확장

저장해야 할 추가 속성이 데이터 작업에 있을 경우 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);
  • 행 1: Knockout 모델에 대한 생성자입니다. 모델이 저장해야 할 속성을 수락합니다.
  • 행 3: 수퍼 클래스의 생성자로, baseConstructor라고도 합니다. Knockout 모델의 수퍼 클래스 중 하나에 의해 처리되는 모든 속성에 대한 값이 이 생성자에 전달됩니다.
  • 행 5: 이 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);