我想将oData服务绑定到SAPUI5视图但不绑定。如何解决这个问题?
tes.view.xml
<mvc:View xmlns:mvc="sap.ui.core.mvc" xmlns="sap.m"
controllerName="tes.tes">
<Page title="Title">
<content>
<Label text="Hai dunia!"></Label>
<List
headerText="Products"
items="{
path: '/DATA'
}" >
<StandardListItem
title="{NAME}"
counter="{DESC}"/>
</List>
</content>
</Page>
</mvc:View>
tes.controller.js
sap.ui.define([
'jquery.sap.global',
'sap/m/MessageToast',
'sap/ui/core/Fragment',
'sap/ui/core/mvc/Controller',
'sap/ui/model/json/JSONModel'
], function(jQuery, MessageToast, Fragment, Controller, JSONModel) {
"use strict";
var CController = Controller.extend("tes.tes", {
onInit : function () {
var model = new sap.ui.model.odata.ODataModel("http://192.168.78.23:8000/Tes/WebContent/tes/data.xsodata", false);
console.log(model);
var model2 = new JSONModel(model);
this.getView().setModel(model2);
}
});
return CController;
});
data.xsodata
service namespace "tes" {
"HANATES"."USER" as "DATA";
}
项目结构:
数据:
数据未绑定到视图SAPUI5。
谢谢。
鲍比
问题在于你的模型:
var model = new sap.ui.model.odata.ODataModel("http://192.168.78.23:8000/Tes/WebContent/tes/data.xsodata", false);
- 这一步是对的。您正在创建一个oData模型。var model2 = new JSONModel(model);
- 这是一个问题。 JSONModel构造函数将接受从中加载JSON的URL或JS对象,但是您正在传递OData Model实例。此步骤不会从oDataModel获取数据。this.getView().setModel(model2);' - Change this to
this.getView()。setModel(model);` - 使ODataModel成为您要查看的默认模型(因为您已在视图中完成了绑定 - / data。)注意:如果要将JSONModel绑定到视图,则:
链接:对于OdataModel读取方法https://openui5.hana.ondemand.com/#docs/api/symbols/sap.ui.model.odata.ODataModel.html#read
如果您需要更多信息,请告诉我。