У меня вопрос по поводу Ext Js контроллера и просмотра событий! я пытался построить этот код по MVC модели. поэтому я попытался подключить контроллер. js от основного. js, который является представлением. и я определяю контроллер, модель, хранилище в приложении. js как состояние c (я не уверен, что это правильно ...)
, но проблема в том, что я вижу основной вид на сайте после запуска main. js. но когда я нажимаю кнопку, чтобы произошло событие, ничего не происходит.
Я не знаю, что я сделал не так. я проверил заклинание и контекстную ошибку столько, сколько смог. но я не смог найти никакой ошибки ..
вот мой код ниже.
Приложение. js
Ext.define('GridMvcApp.Application', {
extend:'Ext.app.Application',
name:'GridMvcApp',
controllers:['AppController'],
stores:[
// TODO: add global / shared stores here
'UserStore'
],
models:[
'UserModel'
],
launch: function () {
// TODO - Launch the application
},
});
Main. js
Ext.define('GridMvcApp.view.main.Main', {
extend: 'Ext.panel.Panel',
alias:'widget.main',
title:'Grid MVC',
width:600,
height:400,
bodyPadding:'5 5 5 5',
items:[{
items:[{
xtype:'fieldset',
padding:'5 5 5 5',
title:'lookup',
width:'100%',
layout:'hbox',
items:[
{
xtype:'textfield',
fieldLabel:'NICKNAME',
labelAlign:'right',
name:'nickname'
}, {
xtype:'tbspacer',
flex:1
},{
xtype:'button',
name:'btnSearch',
text:'LOOKUP',
}]
}]
}, {
xtype:'tbspacer',
height:10
},
{
xtype:'grid',
name:'gridUser',
width:'100%',
height:250,
columnLines:true,
columns:[
{
text:'NUBERING',
xtype:'rownumberer',
width:80,
}, {
text:'USERID',
dataIndex:'userid',
flex:2
},
{
text:'NICKNAME',
dataIndex:'nickname',
flex:2
},{
text:'EMAIL',
dataIndex:'email',
flex:2
}
]
}],
});
AppController. js
Ext.define('GridMvcApp.controller.AppController',{
extend:'Ext.app.Controller',
refs:{
nickname:'main textfield[name=nickname]',
gridUser:'main grid[name=gridUser]'
},
control:{
'Main button[name==btnSearch]':{
click:'onSearch'
},
'Main grid[name=gridUser]':{
afterrender:'onRender'
}
},
onRender:function(){
console.log('4');
this.getGridUser().setStore(Ext.getStore('UserStore'));
},
onSearch:function(button,e,eOpts){
var me=this;
var nickname=this.getNickname().getValue();
console.log('5', nickname),
Ext.getStore('UserStore').load({
params:{
searchNickName:nickName
},
callback:me.onGetUserInfo
});
},
onGetUserInfo:function(records,operation, success){
if(success==true){
console.log('success is true');
}
else{
console.log('success is false');
Ext.Msg.alert('error', this.getProxy().getReader().rawData.msg);
}
}
});