SAPUI5 JSONModel和JSONP

时间:2014-03-02 19:06:18

标签: sapui5

我有一个基于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,...

3 个答案:

答案 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);