[ExtJS] 不同控件的双向绑定

本文探讨了在ExtJS中如何实现同级控件间的双向绑定,特别是当涉及到弹窗编辑时,页面与弹窗控件同步更新的问题。通过利用viewModel的特性,可以在创建弹窗时将页面的viewModel赋值给弹窗,从而实现数据的双向同步。需要注意的是,这种方法要求弹窗的closeAction设为'hide'而非'destroy',以保持viewModel的状态。
摘要由CSDN通过智能技术生成

在之前的文章,简单介绍了viewModel的用法

但是那种viewModel的继承 是 父子控件之间的关联

在A控件里 声明了viewModel,B控件直接绑定AviewModel中的key即可

那如果是同级控件,或者像是常用的弹窗里编辑时,页面也跟随变化(如下图)

这种用fireEvent可以做到,但只用viewModel的话如何处理?

主要实现:

通过extjs viewModel的特性,进行双向绑定

页面控件使用的viewModel 在创建弹窗时 赋给弹窗。

弹窗上的控件,在更新viewModel时就更新了页面上的viewModel,然后页面的viewModel 再更新控件的值

注意:这个方法有个弊端 就是不可以对弹窗设置closeAction:'destroy',只能是closeAction:'hide' 销毁的方法在代码里有介绍


页面构造:

{
    xtype: 'container',
        viewModel: { //声明主要的viewModel
        data: {
            StartDate: new Date('2018-12-31'),
                EndDate: new Date()
        },
        formulas: {
            Datedata: function (get) {
                return [{
                    start: get('StartDate'),
                    end: get('EndDate')
                }];
            }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

29号同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值