! 제품 버전을 정확하게 입력해 주세요.
제품 버전이 정확하게 기재되어 있지 않은 경우,
최신 버전을 기준으로 안내 드리므로
더욱 빠르고 명확한 안내를 위해
제품 버전을 정확하게 입력해 주세요!

RestCollectionView에 대해 궁금한 점이 있습니다 > Q&A | 토론

본문 바로가기

VueJS RestCollectionView에 대해 궁금한 점이 있습니다

페이지 정보

작성자 Noblesse 작성일 2022-06-15 20:01 조회 1,191회 댓글 0건
제품 버전 : 5.20213.824

본문

Spring Boot에 REST API를 구축해놓고 VUE에서 RESTCOLLECTIONVIEW를 이용해 값을 불러와 그리드에 표시하고 싶습니다. 그런데 Document에도 정보가 너무 부족하고 예시도 없어서 혹시 참고할만한 곳이 있나 궁금합니다.

https://www.grapecity.com/wijmo/docs/Topics/Wijmo/Collections/RESTCollectionView

해당 링크에 제시된 방식을 조금만 쉽게 설명해주실수 있나요? getItem의 경우 어떤식으로 데이터를 받아 오는것인지 궁금합니다

  • 페이스북으로 공유
  • 트위터로  공유
  • 링크 복사
  • 카카오톡으로 보내기

댓글목록

등록된 댓글이 없습니다.

1 답변

VueJS Re: RestCollectionView에 대해 궁금한 점이 있습니다

추천0 이 글을 추천하셨습니다 비추천0 채택채택

페이지 정보

작성자 GCK루시 작성일 2022-06-17 14:07 댓글 0건

본문

안녕하세요. 그레이프시티입니다.


먼저 문의 답변이 지연된 점 죄송 드립니다.


RESTCollectionView은 기존 CollectionView 클래스를 확장하여 CRUD 기능을 지원하고 있습니다. 여기서 CollectionView 클래스는 Wijmo가 제공하는 모든 UI 컨트롤에서 데이터를 매우 쉽게 관리할 수 있는 일련의 기능을 제공해주는 클래스며 기본 데이터 바인딩 인터페이스인 ICollecitonView에서 파생되었습니다.


CRUD 기능을 사용하기 위해 RESTCollectionView를 확장하는 클래스를 생성 후, 메서드에 대한 재정의를 추가하셔야 합니다. 해당 REST CollectionView 데모 중 가상 데이터 생성 및 API 테스트를 할 수 있는 기능을 제공하는 JSONPlaceholder 데모 기준으로 설명드리도록 하겠습니다.



먼저, 기본적으로 FlexGrid에 데이터 바인딩을 하기 위해서는 itemsSource 속성을 이용하는데 데이터는 RESTCollectionView에서 확장한 ResCollectionViewJson를 통해 가져옵니다.

<wj-flex-grid  
(...) 
:itemsSource="view"
>
</wj-flex-grid>
 data: function () {
            return { 
                view: new RestCollectionViewJson('todos', {
                    key: 'id',
                    pageSize: 8
                })
            }
        },
 

위의 코드와 같이 전달된 인자들은 아래와 같이 RestCollectionViewJson의 생성자에서 테이블 이름인 'tobos'와 key 및 pageSize와 같은 옵션들이 전달됩니다. (rest-colllection-view-json.js 참고)


constructor(tableName, options) {
        super();
        this._tbl = asString(tableName);
        copy(this, options);

        // this source does not support server-side pagination, sorting, or filtering.
        this.pageOnServer = false;
        this.sortOnServer = false;
        this.filterOnServer = false;
    }

그 다음 getItems 메서드가 호출되고 Promise 객체 내에서 url 및 테이블 이름을 가지고 HTTP 요청을 수행할 httpRequest 메서드에 URL을 전달합니다. httpRequet를 통해 성공적으로 데이터를 가져온 경우, 해당 데이터를 JSON.parse 하여 파싱 처리를 해주며 (여기서 jsonReviver()는 JSON 업데이트 처리를 해줍니다.) 결과적으로 파싱 처리된 데이터가 그리드에 바인딩되게 됩니다.


 async getItems() {
        
        // cancel any pending requests
        if (this._pendingRequest) {
            //console.log('aborting pending request');
            this._pendingRequest.abort();
        }

        return new Promise(resolve => {
            let url = this._url + this._tbl;
            this._pendingRequest = httpRequest(url, {
                success: async xhr => {
                    let arr = JSON.parse(xhr.responseText, this._jsonReviver);
                    resolve(arr);
                },
                error: xhr => this._raiseError(xhr.responseText, false),
                complete: xhr => this._pendingRequest = null // no pending requests
            });
        });
    }


- RestCollectionView

- CollectionView

- itemsSource


관련하여 API 문서를 전달 드리며 다른 궁금한 점이 생기면, 문의 주시기 바랍니다.

감사합니다.
그레이프시티 드림

댓글목록

등록된 댓글이 없습니다.

메시어스 홈페이지를 통해 제품에 대해서 더 자세히 알아 보세요!
홈페이지 바로가기
메시어스 홈페이지를 통해 제품에 대해서 더 자세히 알아 보세요!
홈페이지 바로가기
이메일 : sales-kor@mescius.com | 전화 : 1670-0583 | 경기도 과천시 과천대로 7길 33, 디테크타워 B동 1107호 메시어스(주) 대표자 : 허경명 | 사업자등록번호 : 123-84-00981 | 통신판매업신고번호 : 2013-경기안양-00331 ⓒ 2024 MESCIUS inc. All rights reserved.