我尝试从以下网址访问JSON数据: http://api.openweathermap.org/data/2.5/weather?q=London
并获得以下回复:
{
"coord": {
"lon": 174.77,
"lat": -36.87
},
"sys": {
"type": 1,
"id": 8276,
"message": 0.0568,
"country": "GB",
"sunrise": 1407093366,
"sunset": 1407130678
},
"weather": [
{
"id": 500,
"main": "Rain",
"description": "light rain",
"icon": "10d"
}
],
"base": "cmc stations",
"main": {
"temp": 287.15,
"pressure": 1017,
"humidity": 76,
"temp_min": 287.15,
"temp_max": 287.15
},
"wind": {
"speed": 3.6,
"deg": 210
},
"clouds": {
"all": 76
},
"rain": {
"3h": 1
},
"dt": 1407115800,
"id": 2193733,
"name": "London",
"cod": 200
}
请您建议我如何在UI5中访问它?
我已完成以下操作以设置模型:
var jsonModel = new sap.ui.model.json.JSONModel();
jsonModel.loadData('http://api.openweathermap.org/data/2.5/weather?q=Auckland');
sap.ui.getCore().setModel(jsonModel);
我可以看到Chrome中的响应很快。如何将其绑定到ui5控件?我已经看到了绑定语法,但是得到了null或undefined错误。
请建议。
等待回复。
干杯, AW
答案 0 :(得分:0)
尝试使用AJAX示例:
initTodoModel : function() {
var oModel = new sap.ui.model.json.JSONModel();
var aData = jQuery.ajax({
type : "GET",
contentType : "application/json",
url : "http://sapm04.ibsolution.local:50000/demo.sap.com~d337_resttest_web/rest/todo/init/",
dataType : "json",
async: false,
success : function(data,textStatus, jqXHR) {
oModel.setData({modelData : data});
alert("success to post");
}
});
return oModel;
}
}
请注意,这在普通镀铬窗口中无效,您必须通过命令在禁用安全模式下打开Google Chrome:
chrome.exe --disable-web-security
答案 1 :(得分:0)
sap.ui.getCore().getModel(<your Modelname>).getData()
最好避免使用全局模型。您可以改用视图。像:this.getView().setModel(new JSONModel(), "yourModel")
。模型绑定到视图,因此视图内的控件可以访问模型数据。