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
我正在尝试对 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