Fiori2.0学习笔记-数据绑定

本文介绍了两种数据绑定方式:双向(two-way)与单向(one-way)。双向绑定使得控制器(Model)与视图(View)间的数据能互相更新;单向绑定只允许从Model到View的更新。此外还介绍了一次性绑定(one-time),这种方式只在初始化时绑定数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

two-way 双向数据绑定
控制器(Model)的数据发生了变化,相应的view的数据也做出了改变。反之亦然。

one-way 单向数据绑定
控制器(Model)的数据发生了变化,相应的view的数据也做出了改变。而view数据的改变则不会影响到model

one-time 单次数据绑定
只进行一次数据绑定,model与view的数据改变都不会影响实际的数据改变。

占用内存比
one-time<one-way<two-way

使用方法
new sap.ui.model.json.JSONModel()
new sap.ui.model.odata.ODataModel()
=>
oModel.setDefaultBindingMode(“OneWay”);
默认不指定状态
Model version
V4 JSON model XML model two-way
V2 one-way
Resource model One-time

下面我们来看一个DEMO

首先我们在view 页创建一个input和一个label,里面传值为Name

                    <Input value="{/name}"></Input>
                    <Label text="{/name}"/>
                    <Button text="updata data" press="onPress"></Button>

然后我们在控制层建一个假数据,给他一个值WILL
我们先把他的绑定方式设置为TwoWay

    var model = new sap.ui.model.json.JSONModel();
    model.setDefaultBindingMode("TwoWay");

    model.setData({name:"WILL"});
    this.getView().setModel(model);

RUN后我们会发现
如果我们在input框更改值得话,在取消选中后,下面的label值也做出了相应的改变。
如果我们想做到动态同时改变的话,需要给他一个onChange方法。

相应的,如果我们把绑定方式更改为OneWay后,我们再更改input里的值,label还是最初的原值。
于是这里,我们再加入一个button

    <Button text="updata data" press="onPress"></Button>

我们写一个function,期望于我们在控制层赋予一个新值点击后label更改。

    this.getView().getModel().setProperty('/name',"ROCK");

RUN后观察我们会发现,再OneWay的情况下,我们再更改input里的值,label还是最初的原值。
但如果点击button,label就会改变成我们控制层赋予的值。
由此可知,OneWay方式只有控制层的model改变才会改变,而view页不影响。

那最后还有一个方式,“OneTime”
更改RUN后发现,这次连Button也失效了。
由此可知,OneTime仅一次在加载View时,绑定一次初始值。之后的更改全部失效。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值