我有一个这种结构的JSON:
{
"collection": [
{
"category": "Cables",
"catId": "B"
items": {
"subcat": [
{
"subcatname": "Good quality",
"products": [
{
"id": 1,
"name": "cable",
"price": "1400",
"image": "resources/pic(1).jpg",
"title": "Lorem Ipsum ",
"description": "Lorem Ipsum ."
},
(...)
"category": "Other",
"catId":"B"
(...)
有多个类别和子类别。我的问题是,在创建搜索机制时,我需要将层次结构中的所有最低元素绑定到List。目前我这样做:
var sList = new sap.m.List({
id: "searchListId",
columns: [
(...)
]
});
var oTemplate = new sap.m.ColumnListItem({
type: sap.m.ListType.Active,
cells: [
new sap.m.Image({
src: "{products>subcatname}",
width: "100%"
}),
new sap.m.Text({
width: "100%",
text: "{products>name} \n {flatProducts>price}"
}),
]
});
sList.bindAggregation("items", "products>/collection/1/items/subcat/0/product", oTemplate);
但是这个解决方案只显示了JSON的一小部分,我已经检查了*或/../运算符,但都不起作用。是否有类似的我可以输入到路径中,以便搜索所有元素?
答案 0 :(得分:0)
您可以尝试jQuery.grep,IIRC也可以搜索多维数组
答案 1 :(得分:0)
在UI5中无法直接执行此操作。
您必须操纵JSON或创建仅包含叶子的新JSON(模型)。使用这个新模型,您可以进行常规列表绑定。要操纵JSON结构,Qualiture完全正确指向jQuery.grep。
BR 克里斯