绑定公式的extjs

问题描述 投票:0回答:1

我想用extjs做textfiled绑定,条件如下,我做错了什么?

  1. 需要显示三个文本字段,默认情况下,第二和第三文本字段将被禁用。
  2. 第二文本字段只有在输入第一个字段的值时才会启用,第三文本字段只有在输入第一个和第三个字段的值时才会启用。
  3. 第三个文本字段应该在输入第一个和第二个值时才启用。

小提琴.

extjs binding textfield
1个回答
0
投票

你忘了将第二个字段的值绑定到'field2'。这个例子可以用。

Ext.application({
  name: 'Fiddle',

  launch: function () {
    Ext.define('MyViewModel', {

        extend: 'Ext.app.ViewModel',

        alias: 'viewmodel.myvm',
        data: {
            field1: '',
            field2: '',
            field3: ''
        },
        formulas: {
            fieldTwoDisabled: function (get) {
                return Ext.isEmpty(get('field1'));
            },
            fieldThreeDisabled: function (get) {
                return !(!Ext.isEmpty(get('field1')) && !Ext.isEmpty(get('field2')));
            }
        }

    });


    Ext.create({
        xtype: 'panel',
        title: 'VM Demo',
        fullscreen: true,
        defaults: {
            xtype: 'textfield'
        },
        viewModel: {
            type: 'myvm'
        },

        items: [{
            label: 'Field 1',
            bind: '{field1}'
        }, {
            label: 'Field 2',
            bind: {
                value: '{field2}', // THIS BINDING IS FORGOTTEN
                disabled: '{fieldTwoDisabled}'
            }
        }, {
            label: 'Field 3',
            bind: {
                disabled: '{fieldThreeDisabled}'
            }
        }]
    })
  }
});
© www.soinside.com 2019 - 2024. All rights reserved.