SAPUI5 XML 视图中嵌套 JSON 数组的聚合绑定

Aggregation Binding with nested JSON Arrays in SAPUI5 XML View

我正在尝试对 JSON 模型中的嵌套数组中的数据进行聚合绑定: 这是我的 "Menus.json" 型号:

"days": {
    "monday": {
        "menus": [{
            "menu": "Spaghetti mit Rinder-Bolognese oder VEGATARISCH mit TomatenBasilikumsoße und Parmesan",
            "price": "3.90",
            "price2": "2.90",
            "title": "Menü 1"
        }, {
            "menu": "Schweinerückensteak frisch aus der Pfanne Maisgemüse mit Ofenpaprika und Blattpetersilie Kartoffel Gnocchi im Kürbissud grüne Pfeffer-Butter mit Basilikum",
            "price": "4.40",
            "price2": "3.40",
            "title": "Menü 2"
        }, {
            "menu": "Tilapia aus dem Ofen mit Kokos-Zitronengras Sauce 2,70 € Chinakohl, Karotten, Champignons und Erbsen Jasmin Duftreis",
            "price": "4.80",
            "price2": "3.50",
            "title": "Live Cooking"
        }, {
            "menu": "VEGETARISCH Kokos Paprikasuppe",
            "price": "1.20",
            "price2": "Suppenschale: 3.50",
            "title": "Suppe"
        }, {
            "menu": "Blumenkohl-Lauch Bratling mit Soja-Kerbeldip",
            "price": "2.50",
            "price2": "",
            "title": "Veganer Bratling"
        }]
    }, 
    "tuesday": {
        "menus": [{...}]
    }, 
    "wednesday": {
        "menus": [{...}]
    }, 
    "thursday": {
        "menus": [{...}]
    }, 
    "friday": {
        "menus": [{...}]
    }
}

} 我想像这样 "monday" 绑定到我的 table

<Table id="nordMenuTable" inset="false" items="{Menus>/monday/menus}">
                    <columns>
                        <Column minScreenWidth="Phone" demandPopin="true"/>
                        <Column minScreenWidth="Desktop" demandPopin="true" popinDisplay="WithoutHeader"><ObjectIdentifier title="{i18n>NordColumn1}"/></Column>
                        <Column minScreenWidth="Desktop" demandPopin="true" popinDisplay="Inline"><ObjectIdentifier title="{i18n>NordColumn3}"/></Column>
                        <Column minScreenWidth="Phone" hAlign="End"><ObjectIdentifier title="{i18n>NordColumn2}"/></Column>
                    </columns>
                    <items>
                        <ColumnListItem>
                            <ObjectIdentifier title="{Menus>title}"/>
                            <Text text="{Menus>menu}"/>
                            <Text text="{Menus>price2}"/>
                            <Text text="{Menus>price}"/>
                        </ColumnListItem>
                    </items>
                </Table>

请帮我解决 JSON 具有嵌套数组的文件的绑定语法。我知道如果我有一个仅包含嵌套数组中的数据的 JSON 模型,事情会奏效,但我需要我的 JSON 文件,其中包含与特定日期相关的所有菜单。

您的 json 模型应该类似于:

{
    "days": {
        "monday": {
            "menus": [{

            }]
        },
        "tuesday": {
            "menus": [{

            }]
        }
    }
}

你的 items 聚合应该是 items="{Menus>/days/monday/menus}" 对于 ColumnListItem 路径 {Menus>menu} 因为它们是相对路径

[查看SS][你的JSON不正确先更正你的Json。 然后在视图中这样绑定,这里我的模型名称是设备。 JSON:

    {
    "days": [{
        "monday": {
            "menus": [{
                "menu": "Spaghetti mit Rinder-Bolognese oder VEGATARISCH mit TomatenBasilikumsoße und Parmesan",
                "price": "3.90",
                "price2": "2.90",
                "title": "Menü 1"
            }, {
                "menu": "Schweinerückensteak frisch aus der Pfanne Maisgemüse mit Ofenpaprika und Blattpetersilie Kartoffel Gnocchi im Kürbissud grüne Pfeffer-Butter mit Basilikum",
                "price": "4.40",
                "price2": "3.40",
                "title": "Menü 2"
            }, {
                "menu": "Tilapia aus dem Ofen mit Kokos-Zitronengras Sauce 2,70 € Chinakohl, Karotten, Champignons und Erbsen Jasmin Duftreis",
                "price": "4.80",
                "price2": "3.50",
                "title": "Live Cooking"
            }, {
                "menu": "VEGETARISCH Kokos Paprikasuppe",
                "price": "1.20",
                "price2": "Suppenschale: 3.50",
                "title": "Suppe"
            }, {
                "menu": "Blumenkohl-Lauch Bratling mit Soja-Kerbeldip",
                "price": "2.50",
                "price2": "",
                "title": "Veganer Bratling"
            }]
        }
    }]
};

```
    <Table id="nordMenuTable" inset="false" items="{path : 'device>/days/0/monday/menus'}">
                    <columns>
                        <Column minScreenWidth="Phone" demandPopin="true"/>
                        <Column minScreenWidth="Desktop" demandPopin="true" popinDisplay="WithoutHeader"><ObjectIdentifier title="Hello1"/></Column>
                        <Column minScreenWidth="Desktop" demandPopin="true" popinDisplay="Inline"><ObjectIdentifier title="{i18n>NordColumn3}"/></Column>
                        <Column minScreenWidth="Phone" hAlign="End"><ObjectIdentifier title="Hello2"/></Column>
                    </columns>
                    <items>
                        <ColumnListItem>

                            <cells>
                              <Text text="{device>title}"/>
                              <Text text="{device>price2}"/>
                               <Text text="{device>price}"/>

                            </cells>
                        </ColumnListItem>
                    </items>
                </Table>



  [1]: https://i.stack.imgur.com/Ej022.png