我正在尝试将UI5应用程序连接到OData服务。
对于绑定,我使用数据绑定(“ odataModel”是我的OData服务):
<Text text="{odataModel>/UserSet('MyUsername')/UserName}"/>
现在我想替换XML中的'MyUsername'字符串,因此我正在使用另一种模型。所以我尝试了以下方法:
<Text text="{odataModel>/UserSet('${userModel>/user}')/UserName}"/>
如何将变量放入绑定中?
问候
答案 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);
}