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

Binding SAPUI5动态数据绑定(OData服务的密钥),binding,sapui5,Binding,Sapui5,我正在尝试将我的UI5应用程序连接到OData服务 对于绑定,我使用数据绑定(“odataModel”是我的OData服务): 现在我想替换XML中的“MyUsername”字符串,因此我使用另一个模型。因此,我尝试了以下方法: <Text text="{odataModel>/UserSet('${userModel>/user}')/UserName}"/> 如何将变量放入绑定中 问候语您需要进行元素绑定,并从控制器为所需的控件或容器设置上下文。 只需将视图

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

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


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

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

如何将变量放入绑定中


问候语

您需要进行元素绑定,并从控制器为所需的控件或容器设置上下文。 只需将视图中的绑定相对设置为“/UserSet('MyUsername')”节点(开头没有斜杠),并为要执行ElementBinding的控件或容器提供一个ID。 例如:

<Text id="myText" text="{odataModel>UserName}"/>
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);
}

你试过自定义格式化程序吗?是的,我有。如果我返回带有var的字符串,它只显示该字符串,而不调用该服务。
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);
}