SAPUI5动态数据绑定(OData服务的密钥)

时间:2018-07-05 09:49:04

标签: binding sapui5

我正在尝试将UI5应用程序连接到OData服务。

对于绑定,我使用数据绑定(“ odataModel”是我的OData服务):

<Text text="{odataModel>/UserSet('MyUsername')/UserName}"/>

现在我想替换XML中的'MyUsername'字符串,因此我正在使用另一种模型。所以我尝试了以下方法:

<Text text="{odataModel>/UserSet('${userModel>/user}')/UserName}"/>

如何将变量放入绑定中?

问候

1 个答案:

答案 0 :(得分:1)

您需要执行元素绑定,并从控制器中为所需的控件或容器设置上下文。 只需在相对于“ / UserSet('MyUsername')”节点的视图相对对象中设置绑定(开始时不加斜杠),然后为要进行ElementBinding的控件或容器提供ID。 例如:

<Text id="myText" text="{odataModel>UserName}"/>

然后从控制器中,只要您具有用户名字符串,就可以执行ElementBinding,例如:

onInit(){
   var sUsername = this.getView().getModel("userModel").getProperty("user"); // This is your username coming from your "userModel"
   var sModelNodeAbsolutePath = "odataModel>/UserSet("+ sUsername +")"; // This is the absolute path to the node for this user, the path in the view will be relative to this node
   this.getView().byId("myText").bindElement(sModelNodeAbsolutePath);
}