首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在extjs6中将文本框与组合框值绑定?

如何在extjs6中将文本框与组合框值绑定?
EN

Stack Overflow用户
提问于 2015-08-11 02:24:19
回答 1查看 3.1K关注 0票数 1

我在我的应用程序中使用第六条。我有一个组合盒。这个组合可以有3个值。如果用户选择value1value2,则必须注册两个textfield,但如果选择value3,则必须注册三个textfield

我知道extjs-6有一个reference配置,我可以如下所示:

代码语言:javascript
复制
Ext.create('Ext.panel.Panel', {
    title: 'Sign Up',

    viewModel: {
        type: 'test'
    },

    items: [{
        xtype: 'checkbox',
        boxLabel: 'Is Admin',
        reference: 'isAdmin'
    },{
        xtype: 'textfield',
        fieldLabel: 'Admin Key',
        bind: {
            disabled: '{!isAdmin.checked}'
        }
    }]
});

如何实现这个

Note:这些textfield( value1, vlaue1需要两个主题,value3需要三个主题)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-06 13:42:14

在我的示例中,我将根据组合框的选定记录禁用textfield。有两种(甚至更多)方法可以实现这一点。

  1. 可以使用此绑定记录绑定组合框的选定记录,并设置textfield的“禁用”(或任何可绑定的配置)。
  2. 您可以使用公式,并根据所选的组合框的值返回true或false (或所选记录的另一个属性)来设置textfield的“禁用”。

在视图声明中绑定所选记录(不使用视图模型)

若要将所选记录绑定到属性,请将其添加到组合框中:

代码语言:javascript
复制
{
    xtype: 'combo',
    bind: {
        selection: '{selectedRecord}'
    }
}

现在,您可以使用该属性设置禁用。将其添加到textfield的配置中:

代码语言:javascript
复制
{
    xtype: 'textfield',
    bind: {
        disabled: '{!selectedRecord.value}'
    }
}

在这里您可以找到一个有用的示例:https://fiddle.sencha.com/#fiddle/tec

使用公式并返回一个值(基于所选记录)来绑定

若要获取组合框的选定记录,请使用组合框的引用配置创建绑定到组合框的公式:

代码语言:javascript
复制
formulas: {
     disableTextField: {
         bind: {
             bindTo: '{data2.selection}',
             deep: true
         },
         get: function(record) {
             return record ? record.id !== 3 : true;
         }
    }
 }

现在,将'disableTextField‘的返回值绑定到所需的textfield属性:

代码语言:javascript
复制
{
    xtype: 'combo',
    reference: 'data2'
}, {
    xtype: 'textfield',
    bind: {
        disabled: '{disableTextField}'
    }
}

在这里您可以找到一个有用的示例:https://fiddle.sencha.com/#fiddle/te8

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31932203

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档