如何在 extjs 中的两个视图之间共享相同的 viewModel?
How to share the same viewModel between two views in extjs?
extjs 中的两个或多个视图是否可能共享同一个 viewModel?
例如,如果我有两个视图,如下面的代码所示,这两个视图没有相同的视图模型,而是该视图模型的实例。也许那是意图,但如何实现具有可跨多个视图访问的全局字段,并使用相同的 viewModel 声明。
所以,我想绑定字段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}',
}
}
]
});
extjs 中的两个或多个视图是否可能共享同一个 viewModel?
例如,如果我有两个视图,如下面的代码所示,这两个视图没有相同的视图模型,而是该视图模型的实例。也许那是意图,但如何实现具有可跨多个视图访问的全局字段,并使用相同的 viewModel 声明。
所以,我想绑定字段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}',
}
}
]
});