Sapui5 * 或 /../ 路径运算符

Sapui5 * or /../ Path operator

我有一个 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"
             (...)

有多个类别和子类别。我的问题是,在创建搜索机制时,我需要将层次结构中的所有最低元素绑定到一个列表。目前我是这样做的:

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 的一小部分,我检查了 * 或 /../ 运算符,但均无效。是否有类似的我可以输入到路径中以便它搜索所有元素?

你可以试试jQuery.grep,IIRC它也搜索多维数组

无法在 UI5 中直接执行此操作。

您将不得不操纵您的 JSON 或创建一个仅包含叶子的新 JSON(模型)。使用这个新模型,您可以进行常规列表绑定。操纵 JSON 结构 Qualiture 完全正确指向 jQuery.grep.

BR 克里斯