SAPUI5 将数组行索引绑定到 xml 视图中的数组行数据

Posted

技术标签:

【中文标题】SAPUI5 将数组行索引绑定到 xml 视图中的数组行数据【英文标题】:SAPUI5 bind array row index to array row data in xml view 【发布时间】:2017-05-22 15:48:07 【问题描述】:

我有两个数组:

一个包含我的数据:数组名称是arrayData

一个包含我的数据数组索引的索引

在我的 xml 视图中,我循环遍历我的 arrayIndex,我想显示 arrayData 中对应的行。

有可能吗?如果是的话,怎么办?

感谢和问候。

【问题讨论】:

【参考方案1】:

这是一种巧妙的方法:将作业发送到您的 Formatter.js 函数。

    我将绑定一个聚合,假设我扩展为某个 AddressSet:

    <Table id="someTable" 
        items="path: '/MainSet',
        parameters : 
            expand:'AddressSet'
        "
        growing="true" growingScrollToLoad="true"
     >
    

    然后在聚合中创建一个控件,在其中我将扩展的实体集发送到我的格式化程序

    <Text 
       text="
          parts:[
            path: 'AddressSet',
          ],
          formatter: '.formatter.addressInSearchCatalog'
        "
    

    >

    然后,在格式化程序中,您会注意到展开的实体集只返回一个字符串,该字符串是对象的相对路径。使用此路径,我可以从我的 oData 模型访问该属性!显然,在 javascript 中,我可以简单地从传递给格式化程序函数的数组中获取第一个(或第二个、或第五个或最后一个)数组项。

     addressInSearchCatalog: function(otherSet)
                var oModel = this._oCatalog.getModel();
                var addressObj = oModel.getObject("/" + otherSet[0]);//use absolute binding
                    return(addressObj.HouseNumber + space + addressObj.Street + space + addressObj.City + ", " + addressObj.State + space + addressObj.Zip);
                
            
        
    

【讨论】:

【参考方案2】:

您需要先将arrayData 合并到您的arrayIndex 中,因此您的结构可能如下所示:

 arrayIndex: [
     text: 'test1', arrayData:  otherText: 'testData2'  ,
     text: 'test2', arrayData:  otherText: 'testData2'  
]

现在您可以在表中使用表(sap.m 命名空间)。请务必在之前定义您的模型和模型名称。

<Table items="arrayIndex>/">
    <columns>
        <Column>
            <Text text="Headline"/>
        </Column>   
    </colums>           
        <items>
            <ColumnListItem>
                <cells>
                    <Text text="arrayIndex>text"/>
                        <Table items="path: 'arrayIndex>arrayData', templateShareable:false">
                            <columns class="backgroundBlue">
                                <Column>
                                    <Text text="Headline arrayData"/>
                                </Column>
                            </columns>
                                <items>
                                    <ColumnListItem>
                                        <cells>
                                            <Text text="arrayIndex>otherText"/>
                                        </cells>
                                    </ColumnListItem>
                                </items>
                        </Table>
                </cells>
            </ColumnListItem>
        </items>
</Table>

您必须为第二张桌子使用path: '...', templateShareable:false 才能正常工作。

【讨论】:

以上是关于SAPUI5 将数组行索引绑定到 xml 视图中的数组行数据的主要内容,如果未能解决你的问题,请参考以下文章

SAPUI5 何时将初始过滤器绑定到控件

SAPUI5绑定JSON模型来控制

SAPUI5:xml 视图中 html 标记中的 i18n 属性内容

SAPUI5:是否可以在绑定过滤器中执行嵌套绑定

从 xml 视图 SAPUI5 复制列表项

SAPUI5:更改 url 中的 id 后如何重定向到 NotFound 页面?