Odata SAPUI5-如何动态设置绑定中输入参数的值

Odata SAPUI5-如何动态设置绑定中输入参数的值,odata,sapui5,hana-xs,Odata,Sapui5,Hana Xs,在我的XSOData服务中,我有一个基于带有输入参数的计算视图的实体。我可以在XML视图中将这些参数设置为常量,即 <List items="{dicts>/AncParams(p_dict_name='GROUPS',p_rec_id=2)/Results}" > <StandardListItem title="{dicts>NAME}" /> </List> 它会很好的工作

在我的XSOData服务中,我有一个基于带有输入参数的计算视图的实体。我可以在XML视图中将这些参数设置为常量,即

<List items="{dicts>/AncParams(p_dict_name='GROUPS',p_rec_id=2)/Results}" >
        <StandardListItem
          title="{dicts>NAME}"
          />
    </List>

它会很好的工作


但是如何动态设置参数
p_dict_name
p_rec_id
?我尝试使用表达式绑定从另一个模型(类似这样:
)获取参数值,但没有成功。据我所知,表达式绑定不起作用。还有其他方法吗?

据我所知,您不能通过XML动态进行聚合绑定。至少在我使用过的版本中没有,我不得不承认我有一段时间没有重新检查过。在将字符串应用于模型之前,不会对其内部绑定进行解释

我这样做的方式是通过控制器:

<List id="myList" />
this.getView().byId('myList').bindItems({
  model: 'dicts',
  path: `{/AncParams(p_dict_name='${p_dict_name}',p_rec_id=${p_rec_id})/Results}`,
  template: new sap.m.StandardListItem({
    title: '{dicts>NAME}'
  })
});
您可以使用
getModel('dicts').createKey
函数来生成路径名,我想这会更简洁一些


这也是应用动态过滤器的方法,以防您构建这些过滤器

我想是这样的。读取它,存储这些值(作为一个总列表),并通过java脚本应用过滤器。表示通过本地模型在列表上绑定表达式是正确的,但表达式中没有这些过滤。用一个表达式将很困难,但无论如何它应该是可能的,我使用的版本是1.28。好的,我写这段代码只是为了测试,事实上我想在我的自定义控件中使用这种方法(它也将有
items
aggregation)。我应该在自定义控件中重新定义
onbeforeredering
,并像在您的代码片段中一样在此方法中绑定
items
聚合,这是真的吗?在自定义控件中,我通常也在onbeforeredering方法中进行操作,是的,但这取决于您尝试做什么。你在扩展列表并提供dict_name参数吗?我想用一些扩展来制作面包屑。在item中,我需要一个link+图标,因此它将是一个
BreadcrumbItem
扩展
sap.m.link
。对于容器,我计划创建
Breadcrumb
,它扩展
控件
,并包含
聚合和
聚合。