在ExtJS6中创建电子邮件字段组件

时间:2016-04-13 06:31:50

标签: javascript extjs code-duplication extjs6 modular

我是初学者,我正在尝试使用 ExtJS6 创建登录页面。我能做到的最简单的方法是创建一个panel,其中包含2 text fields(用户名和密码)和button等项,但由于电子邮件和密码文本字段将转到也可以在注册时重复使用,所以我想避免代码重复。因为在这两个地方我们都有相同的验证规则,我们将不得不拥有相同的电子邮件和密码标题。

我正在考虑创建一个电子邮件文本字段组件类和密码文本字段类,它将由TextField类进行扩展,并在这些类中使用vtypename等属性自定义类,在我的登录表单/注册表单中,我使用这些自定义字段,这样我就可以避免代码重复。

我希望其他成员对此发表评论并告诉我这是否是正确的解决方案,如果是,那么我将如何实现这一目标。

此致

2 个答案:

答案 0 :(得分:4)

Extjs 6已经提供了emailpassword texfield。 您可以使用其配置属性来应用更多验证。

您可以像这样创建自己的表单面板:

Ext.define('App.view.LoginPanel', {
    extend: 'Ext.form.Panel',
    fullscreen: true,
    items: [
        {
            xtype: 'fieldset',
            title: 'Register',
            items: [
                {
                    xtype: 'emailfield',
                    label: 'Email',
                    name: 'email'
                },
                {
                    xtype: 'passwordfield',
                    label: 'Password',
                    name: 'password'
                }
            ]
        }
    ]
});

并在任何地方使用它的多个实例。

答案 1 :(得分:0)

我也需要创建电子邮件和密码字段,但是由于某些原因,ExtJS 6.2.0 GPL仅在现代软件包中包含emailfield。我的应用显示了Ext.Loaderxtype: passwordfield的{​​{1}}错误“ 404未找到/未定义”。我在磁盘和存储库(https://cdnjs.com/libraries/extjs/6.2.0)中检入了库,但实际上没有找到它们。

所以我也可以选择-xtype: emailfield使用以下选项: