在之前的文章,简单介绍了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')
}];
}