我在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)
我做错了什么?
答案 0 :(得分:0)
首先:不要设置' /'或数据源和模型的空URI。给他们一条你喜欢的道路,不同于此。 ' /'保留用于主页面或index.html
其次,确保在实例化之后获取模型,之前没有。可能你正在onInit事件中获取模型,当它尚未准备好时。使用其他事件或为“元数据载入”设置事件处理程序。模特的事件。