我是Ext js的新手。我试图在应用程序中实现Grid,一旦用户点击数据,新的msg窗口将打开当前数据,用户可以编辑它,这将保存在模型中。我正在使用Classic toolkit
我试过这样:
Ext.define('MyApp.view.main.MainController', {
extend: 'Ext.app.ViewController',
alias: 'controller.main',
require:['Ext.plugin.Viewport'],
itemtap: function (view,index,item,record) {
Ext.Viewport.add({
xtype:'formpanel',
title:'update',
width:300,
centered: true,
modal: true,
viewModel : {
data: {
employee: record
}
},
items: [{
xtype: 'textfield',
name: 'firstname',
label: 'First Name',
bind: '{employee.name}'
}, {
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();
}
}]
}]
})
在我的另一个文件中,我将此函数称为
listeners: {
select: 'itemtap'
}
但是我收到的错误就像Ext.Viewport.add不是函数
请建议我如何才能实现。
欢迎任何建议。
答案 0 :(得分:3)
在经典工具包中,您没有每次只显示一个项目的视口。您希望在运行时添加组件的视口的整个概念是现代工具包的概念。
相反,您可以将表单放在Window中:
var window = Ext.create('Ext.window.Window',{
title:'update',
width:300,
centered: true,
modal: true,
items: [{
xtype:'formpanel'
viewModel : {
data: {
employee: record
}
},
...
})
window.show();
你的处理程序应该关闭/销毁窗口,而不仅仅是破坏formpanel:
this.up('window').close();
this.up('window').destroy();