2014-03-02 38 views
2

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

网址:http://pipes.yahoo.com/pipes/pipe.run?_id=eb8dcd1d84e4aa323378ce219683878a&_render=json&_callback=bbcModelLoaded (_callback参数被称为JSONP功能)

什么是从这个创建JSONModel的首选方式?

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

错误,如果你创建一个JSONModel用JSONP网址是:

下面的问题出现了:parsererror - bbcModelLoaded({ “计数”:52,...

回答

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

简单的解决方案发现迄今使用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?

0

很高兴在sapui5中有一个JSONP模型。我也不确定如何处理超时,回调和错误?参数生成也可以更加动态。

喜欢的东西:

var mParameters = { 
"Key1" : "Value1", 
"Key2" : "Value2", 
... 
} 
var oModel = new JsonpModel(sURL, mParameters, fCallback, fTimeout);