我在SAPUI5中真的很新鲜,我的JS水平非常差。我对所有控制器都有点迷茫/困惑。
我从SAP获得一个只有1个条目的OData实体集。此条目有3个字段[NAME,MSG_TYPE,MSG_NUMB]。当应用程序启动时(在加载VIEW之前)并根据收到的值我想:
我看到你可以将URL发送到OData var并且你可以调用它但我想知道是否可以使用以下配置来完成它而不用“硬编码”url。
我有以下内容: - manifest.json:
"title": "{{appTitle}}",
"description": "{{appDescription}}",
"sourceTemplate": {
"id": "servicecatalog.connectivityComponent",
"version": "0.0.0"
},
"dataSources": {
"TEST": {
"uri": "/sap/opu/odata/sap/ZHCM_SRV_01/",
"type": "OData",
"settings": {
"odataVersion": "2.0",
"localUri": "localService/metadata.xml"
}
}
}
},
...
"models": {
"i18n": {
"type": "sap.ui.model.resource.ResourceModel",
"settings": {
"bundleName": "test.i18n.i18n"
}
},
"TEST": {
"type": "sap.ui.model.odata.v2.ODataModel",
"settings": {
"defaultOperationMode": "Server",
"defaultBindingMode": "TwoWay",
"defaultCountMode": "None"
},
"dataSource": "TEST",
"preload": true
}enter code here
在Component.js
中init: function() {
// call the base component's init function
UIComponent.prototype.init.apply(this, arguments);
// create the views based on the url/hash
this.getRouter().initialize();
// set the device model
this.setModel(models.createDeviceModel(), "device");
var oModelSab = this.getModel( "TEST" );
oModelSab.read("/TestSet");
if ( oModelSab.getObject("/Test(1)/MSG_TYPE") === 'E' )
{
if ( oModelSab.getObject("/Test(1)/MSG_NUMB") === '1' )
{
this.getRouter().navTo("NotFound");
}else{
this.getRouter().navTo("ObjectNotFound");
}
}
我已经检查了如何在openUI5 SDK中加载OData我已经检查过课程中的视频等等但我找不到任何关于自己加载Odata并根据需要使用它的信息。全部通过列表和表格进行管理......
感谢输入!!