如何在sapui5中使用oDatamodel V2读取图像?

时间:2017-02-06 12:59:36

标签: odata sap sapui5 gateway

我试图从网关读取图片。

如果我直接在SAP网关中运行此uri,则运行正常并读取图像数据:/sap/opu/odata/sap/ZSA_USERS_SRV/UserPhotoSet('someone@gmail.com')/$value"

现在我想使用下面的代码在我的sapui5应用程序中读取此图像,但我只是得到错误“EventProvider sap.ui.model.odata.v2.ODataModel - 没有数据被服务检索到:”

我在这里缺少什么?

var oModel = this.getOwnerComponent().getModel();
    oModel.read("/UserPhotoSet('someone@gmail.com')/$value", {
        success: function(oData, oResponse) {
            alert("Success read userphotto");
            img.setSrc(oData);
        },
    }); 

2 个答案:

答案 0 :(得分:1)

不要使用oModel.read(...)!在你的情况下,你需要做的就是

img.setSrc("/path/to/my/service/UserPhotoSet('someone@gmail.com')/$value");

图片的属性src是一个字符串 - it's a URI

  

存储图像文件的URL的相对或绝对路径。该   路径将根据密度感知格式进行调整   按照惯例

的设备密度

当然,您必须将" / path /替换为/ my / service /"真实的道路......

答案 1 :(得分:0)

在XML中:

<Image id="imgPreviewForm" 
       class="sapUiSmallMarginTopBottom" 
       width="300px" height="150px" visible="true" src="">
</Image>

在Javascript控制器中:

    var img=this.getView().byId("imgPreviewForm");
    img.setSrc("/sap/opu/odata/sap/ZTEST_PDF_SRV/FileSet
                ('Test.jpg')/$value");