无法阅读财产'阅读'未定义的

时间:2018-06-12 10:15:29

标签: sapui5

我在sapui5应用上创建了一个用于测试目的的模拟服务器。

dataSources文件中manifest.json结构的定义如下:

"dataSources": {
    "NorthwindService": {
        "uri": "/",
        "type": "OData",
        "settings": {
            "odataVersion": "2.0",
            "localUri": "localService/metadata.xml"
        }
    }
}

和模型定义:

"models": {
    "i18n": {
        "type": "sap.ui.model.resource.ResourceModel",
        "settings": {
            "bundleName": "ch.app.northwind.i18n.i18n"
        }
    },
    "northwind": {
        "uri": "",
        "type": "sap.ui.model.odata.v2.ODataModel",
        "settings": {
            "defaultOperationMode": "Server",
            "defaultBindingMode": "OneWay",
            "defaultCountMode": "Request"
        },
        "dataSource": "NorthwindService",
        "preload": true
    }
},

调用模型控制器:

this.getView().getModel("northwind")
.read("/Customers/$count", {
  success: function(oData) {
    jQuery.sap.log.info(oData);
  },
  error: function(oError) {
    jQuery.sap.log.info(oError);
  }
});   

它抱怨道:

Overview.controller.js?eval:29 Uncaught (in promise) TypeError: Cannot read property 'read' of undefined
    at f.queryTotalCustomers (Overview.controller.js?eval:29)
    at f.onInit (Overview.controller.js?eval:12)
    at f.a.fireEvent (EventProvider-dbg.js:228)
    at f.a.fireEvent (Element-dbg.js:431)
    at f.fireAfterInit (ManagedObjectMetadata-dbg.js:568)
    at r (Component-dbg.js:162)
    at f.h.runAsOwner (Component-dbg.js:549)
    at P (View-dbg.js:429)
    at eval (View-dbg.js:467)  

我做错了什么?

1 个答案:

答案 0 :(得分:0)

首先:不要设置' /'或数据源和模型的空URI。给他们一条你喜欢的道路,不同于此。 ' /'保留用于主页面或index.html

其次,确保在实例化之后获取模型,之前没有。可能你正在onInit事件中获取模型,当它尚未准备好时。使用其他事件或为“元数据载入”设置事件处理程序。模特的事件。