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

时间:2015-03-26 11:17:40

标签: json binding operator-keyword aggregation sapui5

我有一个这种结构的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的一小部分,我已经检查了*或/../运算符,但都不起作用。是否有类似的我可以输入到路径中,以便搜索所有元素?

2 个答案:

答案 0 :(得分:0)

您可以尝试jQuery.grep,IIRC也可以搜索多维数组

答案 1 :(得分:0)

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

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

BR 克里斯