MetaFilter 클래스의 주요 기능은 다음과 같습니다.
1. 조건을 지정하여 MetaData.detail 데이터를 추출할 수 있습니다.
2. 추출 조건을 메소드로 작성하면 시스템은 이의 실행 결과를 data로 사용합니다.
- filterData(): 전체 MetaData를 대상으로 하며 전체 데이터를 반환합니다.
- filterRow(): MetaData를 row 단위로 파라미터로 받아 실행하고 row 단위로 반환합니다.
3. 추출 결과는 this.detailData에 설정됩니다.
4. MetaData.detail 데이터는 변경되지 않습니다.
5. extend() 형태가 아닌 new mc.data.MetaFilter() 형태로 사용합니다.
- 서버에서 수신한 데이터를 기반으로 추출 조건을 변경해가면서 데이터를 처리할 때
매번 서버와 통신을 하지 않아도 되므로 실행 속도를 향상시킬 수 있으며
이로 인한 User Inteface 향상을 기대할 수 있습니다.
- 예를 들어
삭제 flag를 포함한 데이터를 받은 후 삭제 flag 포함 여부 option에 따라 클라이언트에서
데이터를 표현할 수 있습니다.
| Options | Component |
|---|---|
| detailData {JSON} | data.MetaFilter |
|
MetaData.detail 추출 결과
|
|
| filterData {Function} | data.MetaFilter |
MetaData.detail 데이터 추출 메소드
MetaData.detail 데이터를 추출하려는 조건을 함수로 작성합니다.
filterData() 함수 실행 결과를 detailData에 설정하고 이를 MetaData.detail로 사용합니다.
MetaData.detail 데이터가 변경되는 것은 아닙니다.
JSON 형태의 MetaData.Detail 전체 데이터를 파라미터로 넘겨 줍니다.
return도 JSON 형태이어야 합니다.
example
filterData: function(meta){
var filter = [];
mc.eachArray(meta, function(data){
if (data.elglish == 'baseball'){
filter[filter.length] = data;
}
}, this)
return filter;
}
|
|
| filterRow {Function} | data.MetaFilter |
MetaData.detail 데이터 추출 메소드
MetaData.detail 데이터를 추출하려는 조건을 함수로 작성합니다.
filterRow() 함수 실행 결과를 detailData에 설정하고 이를 MetaData.detail로 사용합니다.
MetaData.detail 데이터가 변경되는 것은 아닙니다.
MetaData.Detail을 row 단위로 반복하면서 Hash 형태의 row와 JSON index를 파라미터로 제공합니다.
Hash를 return하면 Metadata.detail의 row로 사용하고, false를 return하면 데이터에서 제외시킵니다.
sample
var sportsData = [
['code1', 'baseball'],
['code2', 'basketball']
];
var sportsFormat = new mc.data.ArrayFormat([
{index: 0, field: 'id'},
{index: 1, field: 'english'}
);
filterRow: function(meta, index){
return meta.elglish == 'baseball' ? meta : false;
}
|
|
| metaData {JSON} | data.MetaFilter |
|
Meta Data
MetaData 클래스로 생성한 MetaData 오브젝트(인스턴스) 또는 MetaData.detail을 지정
|
|
| Method | Component |
|---|---|
clearData
()
|
data.MetaFilter |
|
datailData를 clear합니다.
|
|
filterData
(JSON)
|
data.MetaFilter |
|
MetaData.detail 전체 데이터 추출을 위한 오버라이드용 메소드입니다.
|
|
filterRow
(Hash, Number)
|
data.MetaFilter |
|
MetaData.detail 데이터를 row 단위로 추출할 오버라이드용 메소드입니다.
|
|
getAllData
() : JSON
|
data.MetaFilter |
|
MetaData.Detail 데이터에서 추출한 datailData를 반환합니다.
|
|
getData
(Number, Number, String) : JSON
|
data.MetaFilter |
|
지정한 인덱스 범위의 데이터를 승순 또는 역순으로 반환합니다.
|
|
getIndex
(Number) : Hash
|
data.MetaFilter |
|
지정한 인덱스 번째의 데이터를 반환합니다.
|
|
getLength
() : Number
|
data.MetaFilter |
|
MetaData.Detail 데이터에서 추출한 datailData 건수를 반환합니다.
|
|
| Custom Event | Component |
|---|---|
| clearData (Object this) | data.MetaFilter |
|
datailData를 clear 할 때 fire 됩니다.
|
|
| filteredData (Hash detaildata, Object this) | data.MetaFilter |
|
MetaData.detail에 조건을 지정하여 추출을 완료하였을 때 fire됩니다.
|
|
| noData (Object this) | data.MetaFilter |
|
MetaData.detail 데이터가 없을 때 fire 됩니다.
|
|
| Examples | |
|---|---|
| default type | |
|
default 템플릿을 적용하여 엘리먼트를 생성합니다.
|
|