88.SAPUI5 Model Binding的问题-在view更改数据,model却不变

目录

1.背景

2.sap.ui.model.BindingMode

sap.ui.model.BindingMode.OneWay

sap.ui.model.BindingMode.TwoWay

3.oModel.setDefaultBindingMode

方法说明

execOneWay方法

execTwoWay方法


1.背景

在做一个UI5项目,后台读取sap.ui.model.Model后,把数据绑定到view的table里,在table更改数据,后台取sap.ui.model.Model后,数据没有改变,仍然保持当初从后台读取过来的值。

我们研究了好长时间,没找到症结。

后台同事问了一句,是不是和绑定模式有关。进而调查到model的最初绑定的代码段,果然发现绑定的是OneWay模式,更改后TwoWay后,问题得到解决。

2.sap.ui.model.BindingMode

所以,又重新查了下绑定模式,官网说明如下:

sap.ui.model.BindingMode.OneWay

BindingMode one way means from model to view.

BindingMode单向表示从模型到视图。

sap.ui.model.BindingMode.TwoWay

BindingMode two way means from model to view and vice versa.

BindingMode双向意味着从模型到视图,反之亦然。

3.oModel.setDefaultBindingMode

方法说明

execOneWay方法

javascript 复制代码
	execOneWay: function(oUrl, data, contentType) {
		if (contentType === undefined)
		{
			contentType = "json";
		}
		var oModel = this._getModel(contentType);
		oModel.forceNoCache(true);
		oModel.setSizeLimit(9999999);
		oModel.setDefaultBindingMode(sap.ui.model.BindingMode.OneWay);
		oModel.loadData(oUrl, data, false);
		return oModel;
	},
	

execTwoWay方法

javascript 复制代码
execTwoWay: function(oUrl, data, contentType) {
		if (contentType === undefined)
		{
			contentType = "json";
		}
		var oModel = this._getModel(contentType);
		oModel.forceNoCache(true);
		oModel.setSizeLimit(9999999);
		oModel.setDefaultBindingMode(sap.ui.model.BindingMode.TwoWay);
		oModel.loadData(oUrl, data, false);
		return oModel;
	},
相关推荐
SAP私密账户8 个月前
VS CODE环境安装和hello world
sap ui5