Fiori数据绑定有三种方式: Two-way,One-way, One-time。这三种绑定方式与不同Model的关系见下图:
TwoWay:controller修改和页面修改,model对象同时改变
OneWay:controller里修改Model内容,页面是变化的;但在页面修改(比如某个输入框里)的model,controller里面相应model是不变的
OneTime:一次性数据绑定,只在页面初始化的时候绑定一次,之后的任何更改,model都不会改变
内存占用比较
two-way > one-way > one-time
使用方法
new sap.ui.model.json.JSONModel()
new sap.ui.model.odata.ODataModel()
在服务描述文件或者controller中更改绑定模式:
oModel.setDefaultBindingMode(“OneWay”);
部分代码
controller
onInit:function(){
var model = new sap.ui.model.json.JSONModel();
//修改model绑定方式,通过view上的input 和 label可以看到不同绑定方式的区别
model.setDefauleBindingMode(“OneWay”);
model.setData({name:’myname’});
this.getView().setModel(model);
}
onPress:function(){
//修改model对象
this.getView().getModel().setProperty(‘/name’,’myname 123’);
}
view
<Input value=”{/name}”></Input>
<Label text=”{/name}”></ Label>
<Button text=”update data” press=”onPress”></Button>