我有一个带有绑定的List。在此列表中,我返回银行账户,在扩展中,我获得了每个账户的授权(1:n)。
<List id="bankAccountList"
itemPress="onListItemSelect"
items="{
path: 'BankvbSet',
parameters: {
expand: 'MandatSet'
}
}"
noDataText="{i18n>msgNoBankAccount}"
delete="onEndBankAccount"
>
现在我将检查是否有任何具有适当状态的任务。所以我为此编写了一个格式化程序,在该格式化程序中,我从$expand
获取数据。但我只得到一个有任务路径的数组。有没有办法获得完整的数据?
这是我目前的代码:
<List id="bankAccountList"
itemPress="onListItemSelect"
items="{
path: 'BankvbSet',
parameters: {
expand: 'MandatSet'
}
}"
noDataText="{i18n>msgNoBankAccount}"
delete="onEndBankAccount"
>
<items>
<ObjectListItem id="template"
custom:bankId="{Bankdetailid}"
type="Navigation"
intro="{i18n>labelBankId}: {Bankdetailid}"
title="{Iban}"
number="{
path: 'ValidEntry',
formatter: '.formatter.setBankAccountStateText'
}"
numberState="{
path: 'ValidEntry',
formatter: '.formatter.setBankAccountState'
}"
>
<attributes>
<ObjectAttribute
title="{i18n>labelBankName}"
text="{Bankdesc}"
/>
<ObjectAttribute
text="{
path: 'MandatSet',
formatter: '.formatter.setLabelMandateVorhanden'
}"
/>
</attributes>
</ObjectListItem>
</items>
</List>
在格式化程序中,我只得到路径为数组
[
"MandatSet(Application='1',SepaCreditorId='DE98ZZZ0999',SepaMandateId='5001549101000001',Status='4')",
"MandatSet(Application='1',SepaCreditorId='DE98ZZZ0999',SepaMandateId='5001549101000002',Status='1')",
"MandatSet(Application='1',SepaCreditorId='DE98ZZZ0999',SepaMandateId='5001549101000003',Status='1')"
]
答案 0 :(得分:0)
这是在ODataModel中存储导航属性数据的默认行为。 尽管您只获得了密钥,但您可以使用 ODataModel 的“ getProperty ”方法轻松地检索后面的对象。
如果您通过控制器定义格式化程序,则会使用它的上下文调用它。格式化函数内部的含义“ this ”将指向控制器实例。
这意味着您可以获取OData模型实例(在格式化程序内部)并调用“getProperty”传递密钥,这将返回所需的对象。