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