gpt4 book ai didi

javascript - ExtJS MVC 表单引用

转载 作者:行者123 更新时间:2023-11-28 15:53:37 25 4
gpt4 key购买 nike

我是 Sencha ExtJS 的新手。我刚刚开始创建 MVC 应用程序。目前,我正在尝试为该应用程序创建一个登录屏幕,但我无法从登录 Controller 获取对我的登录表单的引用。这是我的代码:

app.js

Ext.application({
name: 'Fleximanager',

requires: [
],

controllers: [
'Login'
],

autoCreateViewport: true,

init: function() {
}
});

Viewport.js

Ext.define('Fleximanager.view.Viewport', {
extend: 'Ext.container.Viewport',
requires:[
'Fleximanager.view.login.Flexilogin'
],
layout: 'fit',
items: [{
xtype:'flexilogin'
}]
});

Flexilogin.js

Ext.define('Fleximanager.view.login.Flexilogin', {
extend: 'Ext.panel.Panel',
xtype: 'flexilogin',

layout: {
type: 'vbox',
align: 'center',
pack: 'center'
},

id: 'flexilogin',
style: {background: '#8fc33a'},
items: [{
xtype:'panel',
title: 'Login',
frame: true,
width: 350,
height: 200,
layout: 'fit',
items: {
layout: 'anchor',
id: 'flexiloginform',
bodyPadding: 15,

defaultType: 'textfield',
items: [{
fieldLabel: 'Username',
name: 'username',
allowBlank: false
},{
fieldLabel: 'Password',
name: 'password',
inputType: 'password',
allowBlank: false
}],
buttons: [{
text: 'Register',
id: 'registerbtn',
action: 'register'
},{
text: 'Login',
id: 'loginbtn',
formBind: true,
}]
}
}]
});

和 Controller 的Login.js

Ext.define('Fleximanager.controller.Login', {
extend: 'Ext.app.Controller',
requires: [
'Fleximanager.view.login.Flexilogin',
],
refs:[{
ref: 'loginbtn',
selector: '#loginbtn'
}],

init: function(){
this.control({
'loginbtn': {
'click': function(){
console.log('click');
}
}
})
}
});

代码应该在您单击登录按钮后将“单击”记录到控制台,但它什么也不做。谁能帮我吗?

感谢您的回答。

最佳答案

问题在于您如何引用按钮。

refs:[{
ref: 'loginbtn',
selector: '#loginbtn'
}],

正在创建一个引用 getter 方法 this.getLoginbtn 以在 Controller 中使用,但不能在 this.control 中使用

this.control 中的字符串键是一个标识符,如 Ext.ComponentQuery.query 中定义的那样。 。它搜索 xtype/alias 和 itemId。

this.control({
'flexilogin #loginbtn': {
^ xtype ^ itemId

请注意,您应该使用 itemId 而不是 id,因为 id 在任何时刻在页面上都必须是唯一的,itemId 在组件内应该是唯一的;像这样改变:

{
text: 'Login',
itemId: 'loginbtn',
^ replace id by itemId
formBind: true,
name: 'login'
}

关于javascript - ExtJS MVC 表单引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19683055/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com