我无法在我的控制器内使用吸气器进入我的商店。我必须使用全名(' ExtMVC.store.Contatos'而不仅仅是' Contatos')否则应用程序崩溃...但使用全名我可以'使用框架生成的getter(getContatosStore)。这是我的控制器:
控制器/ Contacts.js
Ext.define('ExtMVC.controller.Contacts', {
extend: 'Ext.app.Controller',
models: ['Contatos'],
stores: ['ExtMVC.store.Contatos'],
views: ['ContatosGrid'],
refs: [
{
ref: 'contatosgrid',
selector: 'grid',
xtype: 'gridpanel'
}
],
init: function() {
this.control({
'contatosgrid dataview': {
itemdblclick: this.editarContato
},
'contatosgrid button[action=add]': {
click: this.editarContato
},
'contatosgrid button[action=delete]': {
click: this.deleteContato
},
'contatoform button[action=save]': {
click: this.updateContato
}
});
},
editarContato: function(grid, record) {
var edit = Ext.create('ExtMVC.view.contato.Formulario').show();
if (record) {
edit.down('form').loadRecord(record);
}
},
updateContato: function(button) {
var win = button.up('window'),
form = win.down('form'),
record = form.getRecord(),
values = form.getValues();
var novo = false;
if (values.id > 0) {
record.set(values);
} else {
record = Ext.create('ExtMVC.model.Contato');
record.set(values);
this.getContatosStore().add(record);
novo = true;
}
win.close();
this.getContatosStore().sync();
if (novo) { //faz reload para atualziar
this.getContatosStore().load();
}
},
deleteContato: function(button) {
var grid = this.getContatosGrid(),
record = grid.getSelectionModel().getSelection(),
store = this.getContatosStore();
store.remove(record);
this.getContatosStore().sync();
//faz reload para atualziar
this.getContatosStore().load();
}
});
我可以使用他们的名字声明的视图和模型,一切都很好。我也尝试在Application.js中声明我的商店,但无济于事。任何sugestions? TNX。
答案 0 :(得分:0)
首先,使用短商店名称,而不是完整的类名。然后检查控制台输出是否有任何错误并修复它们,如果是的话。