我正在开发一个使用不同模型在UI5应用程序中显示各种数据的应用程序。
在Component.js中,我将OData模型定义并绑定到应用程序。
_updateTable: function(data, tableId) {
var table = this.getView().byId(tableId);
var jsonModel = new sap.ui.model.json.JSONModel();
jsonModel.setData(data);
table.setModel(jsonModel);
},
对于表,我使用JSON模型,该模型绑定在XML视图中。
XML控制器:
<Table
id="supplierTable"
fixedLayout="false"
headerText="Lieferantenübersicht"
items="{/results}">
XML:
var jsonModel = new sap.ui.model.json.JSONModel("tableModel");
我的问题是/ results正在创建一个不必要的OData调用,我想阻止它。
我试着像这样命名JSON模型:
items="{tableModel>/results}">
我在XML视图中使用:
<p>Problem accessing /EIM_POSTING_RATE/tableModel. Reason:
<pre> Not Found</pre></p><hr /><i><small>Powered by Jetty://</small></i><br/>
但是我收到以下错误:
{{1}}
有关如何阻止OData呼叫的任何建议吗?
答案 0 :(得分:1)
要使用命名模型,您需要按以下方式将其注册到视图(或表)。
this.getView().setModel(jsonModel, "tableModel");
您需要调整属性绑定才能使用此模型。例如:
<Text text="{tableModel>text}"/>
使用
触发自动请求new sap.ui.model.json.JSONModel("tableModel");
因为JSONModel要么要求存储表示数据的对象,要么使用用于加载数据的URL。