Вы можете напрямую передать запись в viewmodel
, когда создаете свой Formdialog
, например,
Ext.create({
xtype: 'formdialog',
viewModel: {
data: {
employee: record
}
}
})
Или вы также можете установить свою запись в viewmodle, используя ViewModel.set()
метод, подобный этому
form.getViewModel().set('employee', record);
Вы можете проверить здесь с работающей скрипкой .
КОД SNIPPET
Ext.application({
name: 'Fiddle',
launch: function() {
Ext.define('QuickApp.view.main.Formdialog', {
extend: 'Ext.form.Panel',
xtype: 'formdialog',
bodyPadding: 10,
title: 'Update Record',
floating: true,
centered: true,
width: 300,
modal: true,
draggable: true,
items: [{
xtype: 'textfield',
name: 'firstname',
label: 'First Name',
bind: '{employee.firstName}'
}, {
xtype: 'toolbar',
docked: 'bottom',
items: ['->', {
xtype: 'button',
text: 'Submit',
iconCls: 'x-fa fa-check',
handler: function() {
this.up('formpanel').destroy();
}
}, {
xtype: 'button',
text: 'Cancel',
iconCls: 'x-fa fa-close',
handler: function() {
this.up('formpanel').destroy();
}
}]
}]
});
Ext.define('QuickApp.view.main.Main', {
extend: 'Ext.tab.Panel',
xtype: 'maintabpanel',
items: [{
title: 'Employee Directory',
xtype: 'grid',
iconCls: 'x-fa fa-users',
listeners: {
itemtap: function(view, index, item, record) {
Ext.create({
xtype: 'formdialog',
viewModel: {
data: {
employee: record
}
}
}).showBy(item.el);
}
},
store: {
type: 'employee'
},
columns: [{
text: 'First Name',
dataIndex: 'firstName',
flex: 1
}, {
text: 'Last Name',
dataIndex: 'lastName',
flex: 1
}, {
text: 'Phone Number',
dataIndex: 'phoneNumber',
flex: 1
}],
}, {
title: 'About Sencha',
iconCls: 'x-fa fa-info-circle'
}]
});
Ext.create({
xtype: 'maintabpanel',
renderTo: Ext.getBody(),
fullscreen: true
})
}
});