ContextHub UI 모듈 유형 작성

ContextHub와 함께 설치된 모듈 유형이 요구 사항에 맞지 않으면 사용자 지정 UI 모듈 유형을 만드십시오. UI 모듈 유형을 만들려면 ContextHub.UI.BaseModuleRenderer 클래스를 확장한 다음 ContextHub.UI에 등록하여 UI 모듈 렌더러를 만드십시오.

UI 모듈 렌더러를 만들려면 UI 모듈을 렌더링하는 논리를 포함하는 Class 개체를 만듭니다. 최소한 클래스는 다음 작업을 수행해야 합니다.

  • ContextHub.UI.BaseModuleRenderer 클래스를 확장합니다. 이 클래스는 모든 UI 모듈 렌더러에 대한 기본 구현입니다. Class 개체는 이 클래스의 이름을 확장 중인 클래스로 지정하는 데 사용하는 extend 속성을 정의합니다.
  • 기본 구성을 제공합니다. defaultConfig 속성을 만듭니다. 이 속성은 contexthub.base UI 모듈에 대해 정의된 속성과 필요한 기타 속성을 포함하는 개체입니다.

ContextHub.UI.BaseModuleRenderer의 원본이 /libs/granite/contexthub/code/ui/container/js/ContextHub.UI.BaseModuleRenderer.js에 있습니다. 렌더러를 등록하려면 ContextHub.UI 클래스의 registerRenderer 메서드를 사용합니다. 모듈 유형의 이름을 제공해야 합니다. 관리자는 이 렌더러를 기반으로 UI 모듈을 만들 때 이 이름을 지정합니다.

자체 실행 익명 함수에서 렌더러 클래스를 만들고 등록합니다. 다음 예제는 contexthub.browserinfo UI 모듈에 대한 소스 코드를 기반으로 합니다. 이 UI 모듈은 ContextHub.UI.BaseModuleRenderer 클래스의 간단한 확장입니다.

;(function() {

    var SurferinfoRenderer = new Class({
        extend: ContextHub.UI.BaseModuleRenderer,

        defaultConfig: {
            icon: 'coral-Icon--globe',
            title: 'Browser/OS Information',

            storeMapping: {
                surferinfo: 'surferinfo'
            },

            template:
                '<p>{{surferinfo.browser.family}} {{surferinfo.browser.version}}</p>' +
                '<p>{{surferinfo.os.name}} {{surferinfo.os.version}}</p>'
        }
    });

    ContextHub.UI.registerRenderer('contexthub.browserinfo', new SurferinfoRenderer());

}());

렌더러를 만들고 등록하는 코드가 포함된 Javascript 파일은 클라이언트 라이브러리 폴더에 포함되어야 합니다. 폴더의 범주는 다음 패턴과 일치해야 합니다.

contexthub.module.[moduleType]

범주의 [moduleType] 부분은 모듈 렌더러가 등록된 moduleType입니다. 예를 들어 contexthub.browserinfomoduleType에 대해 클라이언트 라이브러리 폴더의 범주는 contexthub.module.contexthub.browserinfo이어야 합니다.

Experience Manager