如何在extjs中的两个视图之间共享相同的viewModel?
extjs中的两个或多个视图是否可能共享同一个viewModel 例如,如果我有两个视图,如下面的代码所示,那么这两个视图并不具有相同的视图模型,而是具有该视图模型的实例。也许这就是我们的意图,但如何实现全局字段,使其能够在多个视图中使用相同的viewModel声明进行访问 因此,我想绑定字段如何在extjs中的两个视图之间共享相同的viewModel?,extjs,viewmodel,Extjs,Viewmodel,extjs中的两个或多个视图是否可能共享同一个viewModel 例如,如果我有两个视图,如下面的代码所示,那么这两个视图并不具有相同的视图模型,而是具有该视图模型的实例。也许这就是我们的意图,但如何实现全局字段,使其能够在多个视图中使用相同的viewModel声明进行访问 因此,我想绑定字段name,这样一个视图中的更改会自动导致所有相应视图中的更改 Ext.define('MainModel', { extend: 'Ext.app.Vi
name
,这样一个视图中的更改会自动导致所有相应视图中的更改
Ext.define('MainModel', {
extend: 'Ext.app.ViewModel',
alias: 'viewmodel.main',
data: {
name : '',
}
});
Ext.define('View1', {
extend: 'Ext.Container',
xtype: 'view1',
viewModel: {
type: 'main'
},
items: [{
xtype: 'textfield',
fieldLabel: 'Name:',
bind: {
value: '{name}',
}
}
]
});
Ext.define('View2', {
extend: 'Ext.Container',
xtype: 'view2',
viewModel: {
type: 'main'
},
items: [{
xtype: 'textfield',
fieldLabel: 'Name:',
bind: {
value: '{name}',
}
}
]
});
我认为不可能按照你要求的方式来做。当您绑定到一个数据元素时,系统将首先检查当前组件视图模型,如果它没有找到值,它将上升到父级并查看,并将继续此操作,直到找到匹配项或不再有父级。因此,如果要在视图模型中共享数据,应将数据存储在父视图模型中 这是一个 这些字段具有双向绑定,因此当您键入一个字段时,它将更新视图模型,然后更新另一个字段。在小提琴上编辑每个字段,另一个字段将更改。可以在viewModel中设置属性,也可以在两个字段中设置一个 这显示通过按钮在父视图模型中设置字段值和数据