Javascript 如何从模型中获取ODATA值并将其显示在消息框中
我已经创建了一个对Northwind数据库的ODATA调用,我一直在玩绑定,并且有一些我无法解决的问题 在这个特定的示例中,当我单击Login时,它将在文本框中显示值,并打开一个messagebox来显示相同的值,但我第一次单击它时,它不会显示任何内容。在第二次工作之后。 为什么会这样 另一个问题是,如果我可以动态更改文本框的绑定,而不是使用{CompanyName},我希望获得ContactName,但当我使用SETVALUE时,它将打印文本{ContactName}。再次感谢 这是使用Success方法的新代码:Javascript 如何从模型中获取ODATA值并将其显示在消息框中,javascript,sapui5,Javascript,Sapui5,我已经创建了一个对Northwind数据库的ODATA调用,我一直在玩绑定,并且有一些我无法解决的问题 在这个特定的示例中,当我单击Login时,它将在文本框中显示值,并打开一个messagebox来显示相同的值,但我第一次单击它时,它不会显示任何内容。在第二次工作之后。 为什么会这样 另一个问题是,如果我可以动态更改文本框的绑定,而不是使用{CompanyName},我希望获得ContactName,但当我使用SETVALUE时,它将打印文本{ContactName}。再次感谢 这是使用Su
我不太明白您的意图,因为您在“getLogin”函数中所做的是:
getLogin: function(evt) {
var oModel = this.getView().getModel();
this.byId("txtUid").bindElement({
path: "/Customers('ALFKI')",
events: {
dataReceived: function(oResponse) {
sap.m.MessageBox.alert(oModel.getProperty("/Customers('ALFKI')/CompanyName"));
}
}
});
this.getView().getModel().read("/Customers('ANATR')", {
success: function(oResponse) {
sap.m.MessageBox.alert(oModel.getProperty("/Customers('ANATR')/CompanyName"));
}
});
}
至于第二个问题,您可以通过编程方式使用该方法。谢谢!我理解这个概念,我刚刚修改了bin,但正如您所看到的,弹出窗口从未显示,就像从未调用success方法一样。我错过什么了吗?this.getView().getModel().read(“/Customers('ANATR')”,{events:{success:function(orresponse){sap.m.MessageBox.alert(this.getView().getModel().getProperty(“/Customers('ANATR')/CompanyName”);});对于第二个问题,我想用{ContactName}替换{CompanyName}的txtUid字段值,但在txtUid中找不到用代码更新该参数的方法。谢谢我编辑了我的答案,因为我使用了错误的绑定API。现在应该可以了。“dataReceived”回调将执行此任务。在jsBin中,您在回调上下文中丢失了“this”,所以要么使用“var that=this”技术,要么在函数作用域的开头保存所需的变量,就像我对“oModel”所做的那样。接收的数据是为了绑定和使用READ读取模型时的成功,我希望我得到了正确的结果。
getLogin: function(evt) {
var oModel = this.getView().getModel();
this.byId("txtUid").bindElement({
path: "/Customers('ALFKI')",
events: {
dataReceived: function(oResponse) {
sap.m.MessageBox.alert(oModel.getProperty("/Customers('ALFKI')/CompanyName"));
}
}
});
this.getView().getModel().read("/Customers('ANATR')", {
success: function(oResponse) {
sap.m.MessageBox.alert(oModel.getProperty("/Customers('ANATR')/CompanyName"));
}
});
}