주요 구조

속성 관계

BindCommand 객체는 valid, bind, output 속성의 MetaView을 포함하고 있습니다. output 속성은 _outputs(MetaViewCollection)의 객체의 속성 output1 을 참조합니다. newOutput(name?) 메소드를 통해서 view 추가할 수 있습니다. _outputs 에 “output + 순번” 이름으로 컬렉션이 추가됩니다.

Class diagram image-center

상속 관계

BindCommand 을 상속하여 확장하거나 BindCommand 을 상속하여 재정의하여 사용자화 할 수 있습니다.

Class diagram image-center

구성 요소

속성

항목 설명
config axios config 와 동일
url url 경로
_outputs _outputs MetaView 컬켁션 속성입니다.
_model _model BindModel 객체 입니다.
valid 검사대상 MetaView 입니다.
bind 바인드 MetaView 입니다.
output 기본 출력 MetaView 입니다.
_ouputs[0] 객체를 참조합니다.
outputOption 출력 옵션입니다. (기본값 = 0)
- 0 : view 안함
- 1 : 모든 column 및 rows 가져오기
- 2 : 존재하는 column 의 rows 가져오기
- 3 : 존재하는 column 의 rows 가져오기, n번째 자로 value 에 설정
cbBegin execute() 시작 콜백 입니다.
callback(bindComamnd)
cbValid execute() valid 검사 전 콜백 입니다.
callback(validView, bindComamnd)
cbBind execute() bind 전 콜백 입니다.
callback(validView, bindComamnd, config)
cbResult execute() 회신 콜백 입니다.
callback(data, bindComamnd, response)
cbOutput execute() output View 매칭 후 콜백 입니다.
callback(views, bindComamnd, response)
cbEnd execute() 종료 콜백 입니다.
callback(status, bindComamnd, response)
_guid 객체의 고유 식별자 (GUID). 객체를 고유하게 식별합니다.
_type 객체의 생성자 함수. 객체가 생성될 때 사용된 함수입니다.

메소드

항목 설명
execute(): Promise 순서 : _execBegin() » _execValid() » _execBind() » _execResult() » _execOutput() » _execEnd()
addColumn(column, views, bTable?) 컬럼을 추가하고 지정 테이블에 추가하고, 컬럼의 참조를 BindCommand 의 valid, bind, output MetaView 에 등록합니다.
addColumnValue(name, value, views, bTable?) 지정한 이름으로 컬럼과 값을 추가하고, 컬럼의 참조를 BindCommand 의 valid, bind, output MetaView 에 등록합니다.
setColumn(names, views, bTable?) 메타테이블의 컬럼을 지정한 MetaView 에 설정합니다.
release(names) 지정한 컬럼을 대상 MeteView 에서 제거합니다.
newOutput(name?) _output MetaViewCollection 에 MetaView 을 추가합니다.
* - 기본 이름 = ‘output’ + _outout.count
removeOutput(name) _output MetaViewCollection 에 MetaView 을 제거합니다.
getObject(): object 현재 객체의 guid 타입의 객체를 가져옵니다.
setObject(obj, origin) 현재 객체를 초기화 후, 지정한 guid 타입의 객체를 사용하여 설정합니다.
equal(target) 현재 객체와 지정된 객체가 동일한지 비교합니다.
getTypes() 현재 객체의 생성자와 프로토타입 체인의 모든 생성자를 배열로 반환합니다.
instanceOf(target) 현재 객체가 지정된 타입의 인스턴스인지 확인합니다. (_UNION 포함)

이벤트

항목 설명
onExecute execte() 실행 전 공통 이벤트 입니다.
onExecuted execte() 실행 후 공통 이벤트 입니다.

세부 설명

주요 속성

config

AJAX 요청에 대한 설정값입니다. axios 의 config와 동일한 형식입니다.

type config = object;

url

AJAX 요청의 URL을 설정합니다.

type url = string;

_outputs

출력 결과를 저장하는 컬렉션입니다.

type _outputs = MetaViewCollection;

_model

바인드 모델 객체입니다.

type _model = BindModel;

valid

검사 대상 MetaView 객체입니다.

type valid = MetaView;

bind

바인드 대상 MetaView 객체입니다.

type bind = MetaView;

bind(MetaView) 는 서버에 전송하는 컬럼 목록입니다. bind.columns 컬렉션의 컬럼명과 컬럼값은 서버로 전송(요청)합니다.

예제 : 내부 작동 구조

var bm = new BindModel();
bm.url = '/user'
bm.addCommand('test');
bm.cmd['test'].addColumnValue('user_name', '홍길동');
bm.cmd['test'].addColumnValue('passwd', '1234');
bm.cmd['test'].execute();

///// 내부적오로 전송
var axiosConfig = {
    url: '/user',
    data: {
        user_name: '홍길동',
        passwd: '1234'
    }
}

output

동적으로 추가된 출력 MetaView 객체입니다.

type output = MetaView;

outputOption

출력 특성 옵션입니다.

  • 0: 제외
  • 1: 모든 컬럼의 로우 가져옴
  • 2: 존재하는 컬럼의 로우만 가져옴
  • 3: 존재하는 커럼의 로우만 가져오고, value 설정
type outputOption = object;

outOpt

outputOption 의 별칭입니다.

type outOpt = object;

cbBegin

실행 시작 시 호출되는 콜백 함수입니다.

type cbBegin = (cmd: BindCommand) => void;
  • cmd - 현재 바인드 명령 객체입니다.

cbValid

검사(valid) 전 호출되는 콜백 함수입니다.

type cbValid = (valid: MetaView, command: BindCommand) => boolean;
  • valid : 검사할 MetaView 객체입니다.
  • command : 현재 바인드 명령 객체입니다.
  • return : 검사 결과를 나타내는 boolean 값입니다.

cbBind

바인드(bind) 전 호출되는 콜백 함수입니다.

type cbBaseBind = (
    bind: MetaView, 
    command: BindCommand, 
    config: object
) => void;
  • bind : 바인드할 MetaView 객체입니다.
  • command : 현재 바인드 명령 객체입니다.
  • config : 설정 객체입니다.

cbResult

바인드 결과를 처리하는 콜백 함수입니다. 주로 결과 데이터 가공에 사용됩니다.

type cbResult = (
    data: object, 
    command: BindCommand, 
    response: object
) => object;
  • data : 바인드 결과 데이터 객체입니다.
  • cmd : 현재 바인드 명령 객체입니다.
  • response : 응답 객체입니다.
  • return : 처리된 결과 데이터입니다.

    cbOutput

바인드 결과를 출력하는 콜백 함수입니다. 주로 목록의 출력에 사용됩니다.

type cbOutput = (
    outputs: MetaViewCollection, 
    command: BindCommand, 
    response: object
) => object;
  • outputs : 메타 뷰 컬렉션입니다.
  • command : 현재 바인드 명령 객체입니다.
  • response : 응답 객체입니다.
  • return : 처리된 결과 객체를 반환합니다.

    cbEnd

처리 종료 후 호출되는 콜백 함수입니다.

type cbBaseEnd = (
    status: object, 
    command: BindCommand, 
    response: object
) => void;
  • status : 상태 정보를 담은 객체입니다.
  • command : 현재 바인드 명령 객체입니다.
  • response : 응답 객체입니다.

_guid

객체의 고유 식별자 (GUID). 객체를 고유하게 식별합니다.

type _guid = string;

_type

객체의 생성자 함수입니다. 객체가 생성될 때 사용된 함수입니다.

type _type = Function;

주요 메소드

execute()

바인드 명령을 실행합니다. 유효성 검사, 바인딩, 결과 처리, 성공 및 오류 콜백을 포함한 전체 실행 프로세스를 수행합니다.

type execute = () => Promise<void>;
  • return : 실행 결과를 나타내는 Promise 객체입니다.

예제

var bm = new BindModel();

bm.addCommand('test1');
bm.addCommand('test2');
...

bm.cmd['test1'].execute();
bm.cmd['test2'].execute();

addColumn()

컬럼을 추가하고 지정한 뷰와 매핑합니다.

type addColumn = (
    column: string | MetaColumn, 
    views: string | string[], 
    bTable: string | MetaTable
) => void;
  • column : 등록할 컬럼 객체입니다. 문자열 또는 MetaColumn 객체일 수 있습니다.
  • views : 추가할 뷰 엔티티 이름입니다. 문자열 또는 문자열 배열일 수 있습니다.
  • bTable : (선택적) 매핑할 기본 테이블 객체 또는 테이블 이름입니다.

    addColumnValue()

컬럼과 값을 추가하고 지정한 뷰와 매핑합니다.

type addColumnValue = (
    name: string, 
    value: any, 
    views?: string | string[], 
    bTable?: string | MetaTable
) => void;
  • name : 컬럼 이름입니다.
  • value : 컬럼 값입니다.
  • views : (선택적) 추가할 뷰 엔티티 이름입니다.
  • bTable : (선택적) 매핑할 기본 테이블 객체 또는 테이블 이름입니다.

setColumn()

컬럼을 설정합니다.

type setColumn = (name: string | string[], views: string | string[]) => void;
  • name : 컬럼 이름 또는 이름 배열입니다.
  • views : 설정할 뷰 이름 또는 이름 배열입니다.

release()

대상 엔티티에서 컬럼을 해제합니다.

type release = (name: string | string[], views: string | string[]) => void;
  • name : 해제할 컬럼 이름 또는 이름 배열입니다.
  • views : 해제할 뷰 엔티티 이름 또는 이름 배열입니다.

newOutput()

출력에 사용할 뷰 엔티티를 추가합니다. 기본 이름은 ‘output’ + _outputs.count입니다.

type newOutput = (name?: string) => void;
  • name : (선택적) 추가로 참조할 뷰 이름입니다.

removeOutput()

출력 뷰를 삭제합니다.

type removeOutput = (name: string) => boolean;
  • name - 삭제할 뷰 이름입니다.

getObject()

현재 객체를 직렬화(guid 타입) 객체로 얻습니다. (순환참조는 $ref 값으로 대체됩니다.)

type getObject = (vOpt?: number, owned?: object | Array<object>) => object;
  • vOpt : 가져오기 옵션입니다. 기본값은 0 입니다.
    • opt=0 : 참조 구조(_guid:Yes, $ref:Yes)
    • opt=1 : 중복 구조(_guid:Yes, $ref:Yes)
    • opt=2 : 비참조 구조(_guid:No, $ref:No)
  • owned : 현재 객체를 소유하는 상위 객체들입니다. 기본값은 빈객체 입니다.
  • return : 직렬화된 객체를 반환합니다.

예제

a.getObject(2) == b.getObject(2)

setObject()

직렬화(guid 타입) 객체를 현재 객체에 설정합니다. (객체는 초기화 됩니다.)

type setObject = (oGuid: object, origin?: object) => void;
  • oGuid : 직렬화할 guid 타입의 객체입니다.
  • origin : 현재 객체를 설정하는 원본 객체입니다. 기본값은 oGuid 입니다.

equal()

현재 객체와 지정된 객체가 동일한지 비교합니다.

type equal = (target: object) => boolean;
  • return : 두 객체가 동일한지 여부를 반환합니다.

getTypes()

현재 객체의 생성자와 프로토타입 체인의 모든 생성자를 배열로 반환합니다.

type getTypes = () => Array<Function>;
  • return : 생성자 함수의 배열을 반환합니다.

예제

const types = obj.getTypes();
console.log(types); // [Function: MetaObject]

instanceOf()

현재 객체가 지정된 타입의 인스턴스인지 확인합니다. (_UNION 포함)

type instanceOf = (target: object | string) => boolean;
  • target : 확인할 대상 타입 (객체 또는 문자열)입니다.
  • return : 지정된 타입의 인스턴스인지 여부를 반환합니다.

주요 이벤트

onExecute

명령 실행 전 호출되는 이벤트입니다.

type onExecute = (cmd: BindCommand) => void;
  • cmd : 실행할 명령 객체입니다.

onExecuted

명령 실행 후 호출되는 이벤트입니다.

type onExecuted = (cmd: BindCommand, result: object) => void;
  • cmd : 실행한 명령 객체입니다.
  • result : 명령 실행 결과 객체입니다.

Updated: