SAP-fiori-Model的几种类型及其使用方式

本文详细介绍了SAP UI5中的三种数据模型:JSONModel、ODataModel和ResourceModel。JSONModel用于在当前页面存储和使用数据,ODataModel则是在整个项目中全局使用的,主要用于与OData服务交互。ResourceModel主要用于加载和显示国际化资源文件。通过示例代码展示了如何创建和使用这些模型。
摘要由CSDN通过智能技术生成

Model通俗理解就是数据模型,在C层通过一些处理后把数据存储在这里,在V层去使用,扮演MVC结构中的M

Model类型分为JSONModel、ODataModel、ResourceModel、XMLModel

一、JSONModel

在JS中定义局部的Model,只可以在当前页面去使用,API:"sap/ui/model/json/JSONModel"

sap.ui.define([
	"sap/ui/core/mvc/Controller",
	"sap/ui/model/json/JSONModel",
	"sap/ui/core/UIComponent"
], function(Controller, JSONModel, UIComponent) {
	"use strict";
	return Controller.extend("WALKTHROUGHZSAPUI5_WALKTHROUGH.controller.Detail", {
		onInit: function() {
			var oJSONModel = new JSONModel({
				Name: "test"
			});
			var oView = this.getView();
			oView.setModel(oJSONModel, "ZTDEMO");
		}
	});
});

在manifest中定义的Model是对整个项目来说是全局的,可以在view中直接引用 

view:

<mvc:View controllerName="WALKTHROUGHZSAPUI5_WALKTHROUGH.controller.InvoiceList" xmlns="sap.m" xmlns:mvc="sap.ui.core.mvc">
	<List id="invoiceList" headerText="{i18n>invoiceListTitle}" class="sapUiResponsiveMargin" width="auto"
		items="{ path : 'invoice>/Invoices', 		
				 sorter : {
			       	path : 'ShipperName',
			     	group : true
		     	}
		     	}">
		<headerToolbar>
			<Toolbar>
				<Title text="{i18n>invoiceListTitle}"/>
				<ToolbarSpacer/>
				<SearchField width="50%" search="onFilterInvoices"/>
			</Toolbar>
		</headerToolbar>
		<items>
			<ObjectListItem title="{invoice>Quantity} x {invoice>ProductName}"
				number="{ parts: [{path: 'invoice>ExtendedPrice'}, {path: 'view>/currency'}], type: 'sap.ui.model.type.Currency', formatOptions: { showMeasure: false }}"
				numberUnit="{view>/currency}" numberState="{= ${invoice>ExtendedPrice} > 50 ? 'Error' : 'Success' }"
				type="Navigation"
					press="onPress">
				<firstStatus>
					<ObjectStatus text="{ path: 'invoice>Status', formatter: '.formatter.statusText' }"/>
				</firstStatus>
			</ObjectListItem>
		</items>
	</List>
</mvc:View>

 二、ODataModel

			var oModel = this.getOwnerComponent().getModel("ZTEST_DEMO");
			var that = this;
			oModel.read("/ETPERSONSet", {
				success: function(oData, response) {

					var gridModel = new JSONModel();

					// sap.ui.getCore().navmodel = that.NavModel;

					// level1JSONModel.setData(that.NavModel.getData());

					gridModel.setData(oData.results);
					that.byId("ztestdemo").setModel(gridModel);
					that.getView().setModel(gridModel, "tedm");
				},
				error: function(oError) {
					that.showErrorMessage(oError);
				}
			});

 三、ResourceModel

// read msg from i18n model
var oBundle = this.getView().getModel("i18n").getResourceBundle();
var sRecipient = this.getView().getModel().getProperty("/recipient/name");
var sMsg = oBundle.getText("helloMsg", [sRecipient]);
// show message
MessageToast.show(sMsg);

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Gong JX

多谢鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值