XML中的动态上下文绑定

时间:2017-02-28 14:13:42

标签: odata sap sapui5 sap-fiori

我有来自后端的odata。我的SAPUI5页面上有两个选择控件。第一个选择显示从后端接收的项目列表。第二个选择根据从第一个选择控件中选择的内容而改变。

现在我正在控制器中构建一个“行星”选择的新路径。是否可以根据XML中的“星星”选定项目更改“行星”项目路径?不使用Javascript?

我想做这样的事情:

<Select id="stars"
    items="{
        path: '/Stars'
    }">
    <core:Item key="{StarID}" text="{StarName}" />
</Select>


<Select id="planets"
    items="{
        path: '("/Stars('" + StarID + "')/toPlanets"'
    }">
    <core:Item text="{PlanetName}" />
</Select>

1 个答案:

答案 0 :(得分:1)

不幸的是,我不相信在UI5中有任何现有的功能可以做这样天真的事情。唯一相似的是XML预处理期间的绑定替换,但是你不能在你的情况下使用它。

我过去曾经多次遇到过这种情况并且已经创建了一个辅助控件来处理这个问题(可能不是完美的解决方案,但它确实有效)。如果你在多个地方都有这种构造,那么使用类似的方法才有意义(所以你要避免在JS控制器中使用相同的样板代码)。

您可以找到here此类控件的示例实现,并here示例用法。基本上,这允许您使用可重用的机制来执行此类“间接绑定”,而无需使用事件侦听器。