将多个JSON模型绑定到一个视图中

时间:2017-01-26 14:25:06

标签: json sap sapui5

我在桌子上工作以在SAP UI5中显示不同的实体。我的Mockserver存储了两个不同的JSON文件:Consumers.json& Orders.json。如何将它们都集成到一个表中?我目前的代码:

带有表格的视图:

<Table 
    id="belege" 
    class="sapUiResponsiveMargin" 
    width="auto"
    growing ="true"
    growingThreshold="15"
    growingScrollToLoad="false"
    items = "{path : 'tcdata>/Orders', parameter: {expand : 'Customers'}}">
    <headerToolbar>
        <Toolbar>
            <Title text="{i18n>showTitleText}"/>
        </Toolbar>
    </headerToolbar>
    <columns>
        <Column>
            <Text text="{i18n>columnName1}"/>
        </Column>
        <Column>
            <Text text="{i18n>columnName2}"/>
        </Column>
        <Column>
            <Text text="{i18n>columnName3}"/>
        </Column>
        <Column>
            <Text text="{i18n>columnName4}"/>
        </Column>
        <Column>
            <Text text="{i18n>columnName5}"/>
        </Column>
        <Column>
            <Text text="{i18n>columnName6}"/>
        </Column>
    </columns>
    <items>
        <ColumnListItem type="Navigation" press="onPress">
            <cells>
                <ObjectIdentifier 
                title ="{tcdata>/Customers/ContactName}"
                text="{tcdata>Customers/CompanyName}"/>
                <ObjectIdentifier 
                text ="{Customers/Country}"/>
                <ObjectNumber
                number ="{tcdata>PostalCode}"/>
                <ObjectIdentifier  
                text="{tcdata>ShipCity}"/>
            </cells>
        </ColumnListItem>
    </items>
</Table>

Customers.json:

[{
"CustomerID": "ALFKI",
"CompanyName": "Alfreds Futterkiste",
"ContactName": "Maria Anders",
"ContactTitle": "Sales Representative",
"Address": "Obere Str. 57",
"City": "Berlin",
"PostalCode": "12209",
"Country": "Germany",
"Phone": "030-0074321",
"Fax": "030-0076545"}]

Orders.json:

[{
"OrderID": "10248",
"Customer": "VINET",
"EmployeeID": "5",
"OrderDate": "1996-07-04T00:00:00",
"RequiredDate": "1996-08-01T00:00:00",
"ShippedDate": "1996-07-16T00:00:00",
"ShipVia": "3",
"Freight": "32.3800",
"ShipName": "Vins et alcools Chevalier",
"ShipAddress": "59 rue de l'Abbaye",
"ShipCity": "Reims",
"ShipPostalCode": "51100",
"ShipCountry": "France"}]

1 个答案:

答案 0 :(得分:1)

请注意,items声明正在尝试查找名为tcdata的模型中的对象以及现在具有以下参数/Orders的链接$expand=Customers

<tcdata-Uri>/Orders$expand=Customers

为了实现这一点,根路径和客户之间需要有一些关系。就像你把它作为你的订单json:

[{
    "Id": 12,
    "Name": "Order1",
    "Customers": {
        "Name": "Customer1",
        "ContactName": "Person1"
    }
}]

然后,订单项目将扩展为包含客户详细信息。