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 视图中的数组行数据的主要内容,如果未能解决你的问题,请参考以下文章