我是 ExtJS 的新手,仍在学习那里的工作原理。在我的情况下,我有一个 html 页面,我通过 ajax 在我的索引页面中加载它,在这个 html 中有一个表单元素。到目前为止,我已经设法为我的表单按钮设置了一个事件侦听器,因此当我单击按钮时,事件运行良好。我不确定如何通过在我的控制器中处理表单的字段值来传递它们。
这是示例代码:
表格:
<form id="loginform">
<fieldset>
<input type="text" id="usn" placeholder="User" /><br />
<input type="password" id="pwd" placeholder="Password"/>
</fieldset>
<p><input type="button" id="lg" value="Enter" /></p>
</form>
我的观点:
Ext.define('App.view.Login', {
extend: 'Ext.container.Container',
alias: 'widget.login',
renderTo: 'wrap',
initComponent: function() {
this.items = [{
loader: {
autoLoad: true,
url: "web/login.html",
renderer: function(loader, response, active) {
var res = response.responseText;
loader.getTarget().update(res);
}
}
}];
this.addEvents('loginUser');
this.callParent(arguments);
},
afterRender: function() {
this.mon(this.el, 'click', this.onUserClick, this, {
delegate: '#lg'
});
this.callParent(arguments);
},
onUserClick: function(ev, t) {
ev.stopEvent();
var params = Ext.fly(t).getAttribute('value');
this.fireEvent('loginUser', params, this, ev);
}
});
控制器:
Ext.define('App.controller.Login', {
extend: 'Ext.app.Controller',
views: [ 'Login' ],
refs: [{
selector: 'login',
ref: 'login'
}],
init: function() {
this.control({
'login':{
loginUser: this.onLoginAuth
}
});
},
onLoginAuth: function(params, component, event){
Ext.widget('users');
this.getLogin().destroy();
}
});
有人知道我们如何实现它吗?