我有一个基于JSONP的REST服务,我需要将其加载到JSONModel中。
网址:http://pipes.yahoo.com/pipes/pipe.run?_id=eb8dcd1d84e4aa323378ce219683878a&_render=json&_callback=bbcModelLoaded (_callback参数是要调用的JSONP函数)
从中创建JSONModel的首选方法是什么?
我宁愿避免自己处理AJAX调用。
如果使用JSONP url创建JSONModel时出错:
发生以下问题:parsererror - bbcModelLoaded({“count”:52,...
答案 0 :(得分:4)
不需要$ .getJSON,JSONP模型或任何其他代码采用。
这实际上是开箱即用的:
new sap.ui.model.json.JSONModel("http://pipes.yahoo.com/pipes/pipe.run?_id=eb8dcd1d84e4aa323378ce219683878a&_render=json&_callback=?");
此处的实例:http://jsbin.com/babiqoze/1/edit?html,output
重要的是你将回调参数的值设置为“?”以便jQuery检测到它并将其作为JSONP请求处理。 http://api.jquery.com/jquery.getjson/#jsonp
答案 1 :(得分:1)
到目前为止,最简单的解决方案是使用JQuery的getJSON
$.getJSON("http://pipes.yahoo.com/pipes/pipe.run?_id=eb8dcd1d84e4aa323378ce219683878a&_render=json&_callback=?", function(results) {
oModel= new sap.ui.model.json.JSONModel(results);
}
也许我们应该添加一个JSONPModel,这只是#sapui5 / openui5?
答案 2 :(得分:0)
在sapui5中拥有一个JSONP模型会很高兴。我也不确定如何处理超时,回调和错误?参数生成也让我更有活力。
类似的东西:
var mParameters = {
"Key1" : "Value1",
"Key2" : "Value2",
...
}
var oModel = new JsonpModel(sURL, mParameters, fCallback, fTimeout);