我是extjs的新手我想为extjs mvc编写一个示例。如果我在一个文件app.js中编写mvc,它工作正常,但是如果我将它们分开为differtent文件(模型,视图和控制器),那么数据正在填充,但eventlisteners不起作用: 下面是我的商店js:如何在视图层中将商店别名转换为extjs处理程序
Ext.define('Crud.store.Product',{
extend: 'Ext.data.Store',
alias:'widget.pStore',
model: 'Crud.model.Product',
autoLoad: true,
autoSync: true
});
,问题是鉴于JS:
var rowEditing = Ext.create('Ext.grid.plugin.RowEditing');
Ext.define('Crud.view.Main',{
extend: 'Ext.grid.Panel',
renderTo: document.body,
plugins: [rowEditing],
width: 400,
height: 300,
frame: true,
title: 'Products',
alias:'pGrid',
store: 'Product',
columns: [{
text: 'ID',
width: 40,
sortable: true,
dataIndex: 'id'
}, {
text: 'Name',
flex: 1,
sortable: true,
dataIndex: 'name',
field: {
xtype: 'textfield'
}
}, {
header: 'Price',
width: 80,
sortable: true,
dataIndex: 'price',
field: {
xtype: 'textfield'
}
}],
dockedItems: [{
xtype: 'toolbar',
items: [{
text: 'Add',
iconCls: 'icon-add',
handler: function() {
// empty record
store.insert(0, new Product());
rowEditing.startEdit(0, 0);
}
}, '-', {
text: 'Delete',
iconCls: 'icon-delete',
handler: function() {
var selection = grid.getView().getSelectionModel().getSelection()[0];
if (selection) {
store.remove(selection);
}
}
}]
}]
});
在,跟它电网没有为店在store.insert(0,new Product())
没有定义的定义和相同的。
在单个js文件中,如果我在下面创建变量,它可以正常工作。
grid=Ext.create('Ext.grid.Panel',{
//view code
}
and store= Ext.create('Ext.data.Store',{
//store code
}
你能帮助我如何获得商店和网格对象吗?
我能够拿到店里,但它抛出错误**未捕获的ReferenceError:产品没有定义**下面是我的模型。 'Ext.define( 'Crud.model.Product',{ \t扩展: 'Ext.data.Model', - } – Arat
我得到了它**变种产品= Ext.ModelManager.getModel('界面污物.model.Product'); ** store.insert(0,Product); 它的工作 – Arat
您可以使用全名创建新模型:'new Crud.model.Product()',或者您只需添加一个空对象并让商店自动将其转换为适当类型的模型:store.add({});' – Alexander