본문 바로가기
Fiori/UI5

[UI5] 예제

by clode 2023. 3. 7.
728x90
반응형

first버튼을 누르면 버튼 a의 type이 변하고 last버튼을 누르면 버튼 b의 type이 변한다. all버튼을 누르면 a부터 e버튼까지 type이 변하고 clear버튼을 누르면 type이 초기타입으로 변한다.

App.view.xml

먼저 화면을 그려준다.

        <content>
            <VBox>
                <HBox>
                 <Button text="A" type="{/first}"/>
                 <Button text="B" type="{/all}" />
                 <Button text="C" type="{/all}" />
                 <Button text="D" type="{/all}" />
                 <Button text="E" type="{/last}"/>
                </HBox>

                <HBox>
                 <Button text="First"  press=".changeFirst" />                
                 <Button text="Last" press=".changeLast"/>                
                 <Button text="All" press=".changeAll"/>                
                 <Button text="Clear" press=".clearAll" />                        
                </HBox>
            </VBox>
        </content>

HBox는 가로로 모듈을 나열하고, VBox는 세로로 모듈을 나열한다.

버튼 a-e는 버튼의 type이 바뀌므로 type 속성에서 프로포티를 가져온다.
press는 버튼을 클릭했을때 속성이고, 함수를 호출해 버튼을 클릭하면 함수를 실행한다.

App.controller.js

sap.ui.controller("button2.App", {
    onInit: function() {
        var oData = {
              type : "Default" 
        };
        var oModel = new sap.ui.model.json.JSONModel(oData);
        this.getView().setModel(oModel);
    },

뷰에 데이터를 바로 바인딩 할수 없어 데이터를 모델에 담고, 뷰에 모델을 바인딩해야한다.

oData로 객체를 생성하고, 객체에 데이터를 담는다. 객체를 JSON Model로 만들고 뷰에 모델을 바인딩한다.

    changeFirst : function () {
        var oModel = this.getView().getModel(); //default모델이 변수에 담김 
            oModel.setProperty("/first", "Accept"); ////뷰에선 중괄호사용, 컨트롤러단에선 중괄호 사용x
    },

getModel()을 빈공간으로 두면 default모델을 사용하겠다는 의미이다. default모델을 변수에 담아 모델에 type을 setProperty를 사용해 Accept로 셋팅한다.

    changeLast : function () {
        var oModel = this.getView().getModel();
            oModel.setProperty("/last", "Accept");
    },

    changeAll : function () {
        var oModel = this.getView().getModel();
//            oModel.setProperty("/first", "Accept");
//            oModel.setProperty("/last", "Accept");
            this.changeFirst();
            this.changeLast();
            oModel.setProperty("/all", "Accept");

    },

    clearAll : function () {
        var oModel = this.getView().getModel();
            oModel.setProperty("/first", "Default");
            oModel.setProperty("/last", "Default");
            oModel.setProperty("/all", "Default");
    }
});

같은 방식으로 다른 함수들도 구성한다.

728x90
반응형

'Fiori > UI5' 카테고리의 다른 글

[UI5] Pages, Panels, Shell, Margins, Nested View, Custom CSS  (0) 2023.03.07
[UI5] 화면 개선  (0) 2023.03.07
[UI5] JSON Model  (0) 2023.03.07
[UI5] JSON Model  (0) 2023.03.07
[UI5] Binding (Two-way& One-way)  (0) 2023.03.07

댓글