【SAPUI5】XML 뷰에는 무엇을 어떤 순서로 쓰면 좋은가 문제

5801 단어 SAPUI5피오리SAP

이 기사의 목적



SAPUI5의 XML 뷰에 사용되는 태그에는 컨트롤을 나타내는 (대문자로 시작하는) 것과 그렇지 않은 (소문자로 시작하는) 태그가 있습니다.
다음 예제에서 <List>는 전자이고 <items>는 후자입니다.

SAPUI5를 시작했을 무렵, <List>는 알겠습니다만, 그 아래에 <items>가 붙는다는 것은 어떤 법칙에 의한 것인가, 머리를 괴롭히고 있었습니다.
이 기사에서는 "XML 뷰에 무엇을 어떤 순서로 작성해야 하는가"에 대해 설명합니다.
<mvc:View
    controllerName="sap.m.sample.ObjectListItem.List"
    xmlns:mvc="sap.ui.core.mvc"
    xmlns="sap.m">
    <List
        items="{/ProductCollection}"
        headerText="Products">
        <items>
            <ObjectListItem
                title="{Name}"
                type="Active"
                press="onListItemPress"
                number="{
                    parts:[{path:'Price'},{path:'CurrencyCode'}],
                    type: 'sap.ui.model.type.Currency',
                    formatOptions: {showMeasure: false}
                }"
                numberUnit="{CurrencyCode}">
                <firstStatus>
                    <ObjectStatus
                        text="{Status}"
                        state="{
                            path: 'Status',
                            formatter: 'sap.m.sample.ObjectListItem.Formatter.status'
                        }" />
                </firstStatus>
                <attributes>
                    <ObjectAttribute text="{WeightMeasure} {WeightUnit}" />
                    <ObjectAttribute text="{Width} x {Depth} x {Height} {DimUnit}" />
                </attributes>
            </ObjectListItem>
        </items>
    </List>
</mvc:View>

소문자로 시작하는 것은 aggregation



대문자로 시작하는 것은 컨트롤이지만 소문자로 시작하는 것은 aggregation입니다. 컨트롤은 그 안에 여러 객체를 넣을 수 있습니다. 이러한 객체를 묶는 그릇과 같은 것이 aggregation입니다.

주) aggregation의 종류에 따라 하나의 객체만 들어가는 것도 있습니다

XML 뷰에는 무엇을 어떤 순서로 쓰면 좋을까



이 질문에 대한 대답은 API 참조에서 찾을 수 있습니다.
예를 들어, 목록 컨트롤 페이지를 살펴 보겠습니다. 일반적으로, 사각형으로 둘러싸인 부분에 Aggregations라는 항이 있습니다만, 이 컨트롤에는 Aggregations가 없습니다.


그럴 때는 부모의 컨트롤 인 sap.m.ListBase를 살펴 보겠습니다. Aggregations가 있었다.


Aggregations를 보면, 모두 소문자로 시작되고 있네요.


일부 aggregation에는 해당 Type(컨트롤) 객체를 넣을 수 있습니다. items에 해당하는 것은 sap.m.ListItemBase입니다. items 안에는 ListItemBase, 또는 이것을 상속하는 컨트롤을 넣을 수 있다고 하는 것입니다.
처음의 예에서는 ObjectListItem이 들어있었습니다. ObjectListItem도 ListItemBase를 상속합니다.

결국, 무엇을 어떤 순서로 써야합니까?



이에 대한 대답은 다음과 같습니다.
  • 컨트롤, aggregation, 컨트롤, aggregation ...의 순서로 쓴다 (컨트롤을 aggregations로 샌드
  • 컨트롤에 어떤 aggregation이 있는지 API 참조를 참조하십시오.

    조사 흐름



    전제로, 만들고 싶은 것의 이미지는 정해져 있다고 합니다.
    참조만을 의지로 하는 경우는 이하의 흐름이 됩니다.
    ※실제로는 샘플 프로그램을 보거나 하는 것이라고 생각합니다.
  • 사용하는 컨트롤의 참조를 봐 (경우에 따라서는 부모 클래스를 본다)
  • Aggregations 필드를 봅니다
  • aggregation의 이름의 태그명으로 둘러싸고, Type로 지정된 클래스의 컨트롤을 안에 넣는다
  • 필요에 따라서 1.에 돌아온다 (3.로 지정한 컨트롤에 aggregation를 추가하는 경우)


  • 보충: 기본 aggregation 정보



    Aggregations 목록에서 이름 옆에 (default)가 붙은 것이 있습니다. 이것은, 이 aggregation 가 명시적으로 쓰지 않아도 자동적으로 삽입되는 것을 나타냅니다. <items> 태그를 넣지 않으면 오류가 발생하지 않습니다. 개발자용 모범 사례을 보면 뷰를 단순화하기 위해 기본 aggregation을 작성하지 않는 것이 좋습니다.

    Omit the content or items tag for controls that define default aggregations.

    좋은 웹페이지 즐겨찾기