주요 구조

속성 관계

BindModel 객체를 생성하고 addCommmand() 메소드로 BindCommand 객체를 생성합니다. 생성된 command['별칭'] 에는 valid, bind, output 속성값의 MetaView 가 있습니다. ajax 통신은 내부적으로 axios 모듈을 이용하고 있습니다.

클래스 다이어그램 image-center

상속 관계

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

클래스 다이어그램 image-center

구성요소

속성

항목 설명
baseConfig 바인딩 기본 config을 설정합니다.
url 바인딩 기본 config.url을 설정합니다.
_tables 메타 테이블 컬렉션입니다. 여러 메타 테이블을 관리합니다.
_columnType 아이템 타입을 설정합니다.
items 아이템 컬렉션입니다.
fn 바인드모델 함수 컬렉션입니다. (내부함수 + 노출함수)
command 바인딩 명령 컬렉션입니다.
columns 컬럼 컬렉션입니다. _baseTable의 컬럼을 나타냅니다.
first 동적으로 생성된 첫 번째 메타 테이블입니다.
cbFail 검사(valid)에서 실패 시 호출되는 콜백 함수입니다.
cbError 오류 발생 시 호출되는 콜백 함수입니다.
cbBaseBegin 시작 전 기본 콜백 함수입니다.
(cbBegin 콜백 함수가 없을 경우 사용됨)
cbBaseValid 검사(valid) 시 기본 콜백 함수입니다.
(cbValid 콜백 함수가 없을 경우 사용됨)
cbBaseBind 바인드 시 기본 콜백 함수입니다.
(cbBind 콜백 함수가 없을 경우 사용됨)
cbBaseResult 바인드 결과 수신 시 기본 콜백 함수입니다.
(cbResult 콜백 함수가 없을 경우 사용됨)
cbBaseOutput 출력 기본 콜백 함수입니다.
(cbOutput 콜백 함수가 없을 경우 사용됨)
cbBaseEnd 실행 완료 시 기본 콜백 함수입니다.
(cbEnd 콜백 함수가 없을 경우 사용됨)
preRegister init() 호출시 처음에 호출되는 콜백 함수입니다.
preCheck init() 호출시 boolean 을 리턴하는 콜백 함수입니다.
preReady init() 호출시 preCheck 콜백 함수 결과가 true 일때 호출되는 콜백 함수입니다.
_baseTable 기본 엔티티를 정의합니다.
_guid 객체의 고유 식별자 (GUID). 객체를 고유하게 식별합니다.
_type 객체의 생성자 함수. 객체가 생성될 때 사용된 함수입니다.
   

메소드

항목 설명
checkSelector(collection?) 셀렉터를 검사합니다.
getSelector() 대상 셀렐터 목록을 얻습니다.
addCommand(name, opt?, baseTable?) 명령을 추가합니다.
setService(svc, chkType) 서비스를 설정합니다.
init() 초기화 작업을 수행합니다. 내부적으로 preRegister() -> preCheck() -> preReady() 순서로 호출합니다.
addTable(name) 테이블을 등록합니다.
addColumn(column, cmds?, views?, bTable?) 컬럼을 추가하고 명령과 매핑합니다.
addColumnValue(name, value, cmds?, views?, bTable?) 컬럼과 값을 추가하고 지정된 테이블에 추가하며, 컬럼의 참조를 BindCommand의 valid, bind, output MetaView에 등록합니다.
setMapping(mapping: collection | object, bTable?) 컬럼을 매핑합니다.
getObject(): object 현재 객체를 직렬화(guid 타입) 객체로 얻습니다. (순환참조는 $ref 값으로 대체됩니다.)
setObject(obj, origin) 직렬화(guid 타입) 객체를 현재 객체에 설정합니다. (객체는 초기화 됩니다.)
equal(target) 현재 객체와 지정된 객체가 동일한지 비교합니다.
getTypes() 현재 객체의 생성자와 프로토타입 체인의 모든 생성자를 배열로 반환합니다.
instanceOf(target) 현재 객체가 지정된 타입의 인스턴스인지 확인합니다. (_UNION 포함)

이벤트

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

세부 설명

주요 속성

baseConfig

바인딩 기본 config을 설정합니다.

type baseConfig = object;

url

바인딩 기본 config.url을 설정합니다.

type url = string;

_tables

메타 테이블 컬렉션입니다. 여러 메타 테이블을 관리합니다.

type _tables = MetaTableCollection;

_columnType

컬럼 타입을 설정합니다.

type _columnType = MetaColumn;

items

아이템 컬렉션입니다.

type items = PropertyCollection;

fn

바인드모델 함수 컬렉션입니다. (내부함수 + 노출함수)

type fn = PropertyCollection;

command

바인딩 명령 컬렉션입니다.

type command = PropertyCollection;

cmd

command 의 별칭입니다.

type cmd = PropertyCollection;

columns

컬럼 컬렉션입니다. _baseTable의 컬럼을 나타냅니다.

type columns = MetaTableColumnCollection;

first

동적으로 생성된 첫 번째 메타 테이블입니다. _tables[0] 의 참조값입니다.

type first = MetaTable;

cbFail

검사(valid)에서 실패 시 호출되는 콜백 함수입니다.

type cbFail = (result: object, column: MetaColumn) => void;
  • result : 검사 결과를 담은 객체입니다.
  • column : 검사에 사용된 MetaColumn 객체입니다.

    cbError

오류 발생 시 호출되는 콜백 함수입니다.

type cbError = (msg: string, status: object, response: object) => void;
  • msg : 오류 메시지입니다.
  • status : 상태 정보를 담은 객체입니다.
  • response : 응답 객체입니다.

    cbBaseBegin

시작 전 기본 콜백 함수입니다. (cbBegin 콜백 함수가 없을 경우 사용됨)

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

    cbBaseValid

검사(valid) 시 기본 콜백 함수입니다. (cbValid 콜백 함수가 없을 경우 사용됨)

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

cbBaseBind

바인드 시 기본 콜백 함수입니다. (cbBind 콜백 함수가 없을 경우 사용됨)

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

cbBaseResult

바인드 결과 수신 시 기본 콜백 함수입니다. (cbResult 콜백 함수가 없을 경우 사용됨)

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

cbBaseOutput

출력 기본 콜백 함수입니다. (cbOutput 콜백 함수가 없을 경우 사용됨)

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

cbBaseEnd

실행 완료 시 기본 콜백 함수입니다. (cbEnd 콜백 함수가 없을 경우 사용됨)

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

preRegister

init() 호출시 처음에 호출되는 콜백 함수입니다.

type preRegister = (model: BindModel) => void;
  • model : 현재 바인드 모델 객체입니다.

preCheck

init() 호출시 boolean 을 리턴하는 콜백 함수입니다.

type (model: BindModel)=>boolean;
  • model : 현재 바인드 모델 객체입니다.
  • return : 검사 결과를 나타내는 boolean 값입니다.

preReady

init() 호출시 preCheck 콜백 함수 결과가 true 일때 호출되는 콜백 함수입니다.

type preReady = (model: BindModel) => void;
  • model : 현재 바인드 모델 객체입니다.

_baseTable

기본 엔티티를 정의합니다.

type _baseTable = MetaTable;

_guid

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

type _guid = string;

_type

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

type _type = Function;

주요 메소드

checkSelector()

셀렉터를 검사합니다.

type checkSelector = (collection: BaseColumnCollection) => boolean;
  • collection : 검사할 컬럼 컬렉션입니다.
  • return : 검사 결과를 나타내는 boolean 값입니다.

getSelector()

대상 셀렐터 목록을 얻습니다.

type getSelector = (collection: PropertyCollection) => object[];
  • collection : 검사할 속성 컬렉션입니다. 기본값은 items 입니다.
  • return : 셀렉터 목록을 나타내는 객체 배열입니다.

addCommand()

명령을 추가합니다.

type addCommand = (
    name: string, 
    option: number, 
    baseTable: MetaTable
) => BindCommand;
  • name : 명령 이름입니다.
  • option : 출력옵션입니다.
  • baseTable : (선택적) 기본 테이블 객체입니다.
  • return : 추가된 바인드 명령 객체입니다.

setService()

서비스를 설정합니다.

type setService = (service: IServiceAjax, passTypeChk: boolean) => void;
  • service : 서비스 객체입니다.
  • passTypeChk : 서비스객체 type 검사 통과 유무입니다. (기본값: false)

init()

초기화 작업을 수행합니다. 내부적으로 preRegister() -> preCheck() -> preReady() 순서로 호출합니다.

type init = () => void;

addTable()

테이블을 등록합니다.

type addTable = (name: string) => MetaTable;
  • name : 등록할 테이블의 이름입니다.
  • return : 등록된 메타 테이블 객체를 반환합니다.

addColumn()

컬럼을 추가하고 명령과 매핑합니다.

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

addColumnValue()

컬럼과 값을 추가하고 지정된 테이블에 추가하며, 컬럼의 참조를 BindCommand의 valid, bind, output MetaView에 등록합니다.

type addColumnValue = (
    name: string, 
    value: any, 
    cmds?: string | string[], 
    views?: string | string[], 
    bTable?: string | MetaTable
) => void;
  • name : 컬럼 이름입니다.
  • value : 컬럼 값입니다.
  • cmds : 뷰의 위치를 지정하는 명령입니다. 문자열 또는 문자열 배열일 수 있습니다.
  • views : 추가할 뷰 엔티티 이름입니다. 문자열 또는 문자열 배열일 수 있습니다.
  • bTable : (선택적) 매핑할 기본 테이블 객체 또는 테이블 이름입니다.

setMapping()

컬럼을 매핑합니다.

type setMapping = (
    mapping: PropertyCollection | object, 
    baseTable?: string | MetaTable
) => void;
  • mapping : MetaColumn에 매핑할 객체 또는 컬렉션
  • baseTable : (선택적) 매핑할 기본 테이블 객체 또는 테이블 이름입니다.

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: