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

发布于:2024-08-16 ⋅ 阅读:(59) ⋅ 点赞:(0)

目录

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方法

	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方法

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;
	},


网站公告

今日签到

点亮在社区的每一天
去签到