我有两个数组:
包含我的数据:数组名称是arrayData
包含我的数据arrayIndex索引
在我的xml视图中,我遍历我的arrayIndex,我想显示arrayData中对应的行。
有可能吗?如果是的话呢?
谢谢和问候。
答案 0 :(得分: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'
}"
&GT;
然后,在Formatter中,您会注意到展开的实体集只返回一个字符串,该字符串是对象的相对路径。使用此路径,我可以从我的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);
}
}
}
答案 1 :(得分:0)
您需要先将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}
才能正常使用。