sap.m.Table中的多个项目路径

时间:2015-01-13 10:46:21

标签: sapui5

在表I的items属性中设置我的路径:

 items="{path: 'model>/elements/idStabMagTable/elements/'}">

现在我想要地图两个不同的模型(model包含数据,enable用于管理行的类型

            <items>
                <ColumnListItem type="{enable>row_enable}"> //"Navigation" or none
                    <cells>
                        <Text text="{model>society/description}"/>

                      ...

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

这是我的模型model

"idTable": {
      "elements": [
        {
          "language": {
            "code": "01",
            "description": "ITALIANO"
          },
          "scheda": "rome"
        },
        {
          "language": {
            "code": "04",
            "description": "TEDESCO"
          },
          "scheda": "berlino"
        }
      ]
    }

这是我的模型enable

"idTable": {
      "elements": [
        {
          "language": true,
          "scheda": true,
          "_row": true
        },
        {
          "language": false,
          "scheda": false,
          "_row": false
        }
      ]
    }

我将这两个模型保存到两个不同的文件中,然后将其管理为两个不同的JSONModel。 现在我想在每一行中设置第一个模型的值和第二个模型的启用信息

但是在项目路径中我只能映射一条路径!我可以映射两个模型吗? (modelenable

1 个答案:

答案 0 :(得分:0)

我找到了解决方案! 它工作正常,允许我维护不同的模型。

如果在表格(或列表)中,我的元素有这条路径:

items="{path: 'model>/elements/idStabMagTable/elements/'}">

如果我想在ColumnListItem中的模型模型中绑定一个属性,我写

<Text text="{model>society/description}"/>

如果我的第二个模型enable具有model模型的相同结构,我可以在此模式下映射相同的属性但在enable模型中:

<Text text="{parts:[{path:'model>society'}], formatter:'ui5bp.Formatter.elementEnable'}"/>

这是我的格式化函数:

 elementEnable: function (oEl) {
        var sPath = this.getBindingInfo("text").binding.oContext.sPath;
        var sProperty = this.getBindingInfo("text").parts[0].path;
        sPath=sPath+"/"+sProperty;
        var oEnableModel= ui5bp.products.getModel("enable"); //same path, different model
        var oValueEnable=oEnableModel.getProperty(sPath);
       return oValueEnable;
    }