2

我有一个基于 JSONP 的 REST 服务,我需要将其加载到 JSONModel 中。

URL:http ://pipes.yahoo.com/pipes/pipe.run?_id=eb8dcd1d84e4aa323378ce219683878a&_render=json&_callback=bbcModelLoaded(_callback参数是要调用的JSONP函数)

从中创建 JSONModel 的首选方法是什么?

我宁愿避免自己处理 AJAX 调用。

如果您使用 JSONP url 创建 JSONModel,则错误是:

出现以下问题:parsererror - bbcModelLoaded({"count":52,...

4

3 回答 3

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

于 2014-03-03T15:48:27.543 回答
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);
    }

也许我们应该在 #sapui5/openui5 中添加一个仅执行此操作的 JSONPModel ?

于 2014-03-02T19:38:14.420 回答
0

在 sapui5 中有一个 JSONP 模型会很好。我也不确定如何处理超时、回调和错误?参数生成也可以让我更有活力。

就像是:

var mParameters = {
"Key1" : "Value1",
"Key2" : "Value2",
...
}
var oModel = new JsonpModel(sURL, mParameters, fCallback, fTimeout);
于 2015-05-05T09:12:10.210 回答