如何在 ExtJS 中的绑定公式中使用逻辑运算符?

How to use logical operators inside bind formulas in ExtJS?

我在一个表单中有 3 个输入字段,我想仅在前两个输入有值时才启用第三个输入。

这似乎不起作用:

Ext.define('MyApp.view.myobj.MyPanel', {
    extend:'Ext.Panel',

    viewModel: {},

    items: [{
        xtype: 'form',
        defaultType: 'textfield',
        items: [
            {fieldLabel: 'Field 1', reference: 'field1', publishes: 'value'},
            {fieldLabel: 'Field 2', reference: 'field2', publishes: 'value'},
            {
                fieldLabel: 'Field 3', 
                bind: {
                    disabled: '{!field1.value} || {!field2.value}'
                }
            },            
        ],
    }],
});

Fiddle

在视图模型中,将公式添加到 return {!field1.value} 的值 || {!field1.value}

根据 fiddle:

viewModel: {
    formulas: {
        something: {
            bind: {
                x: '{!field1.value}',
                y: '{!field2.value}'
            },

            get: function (data) {
                if (data.x || data.y) return true;
                else return false;
            }
        }
    }
},

items: [{
    xtype: 'form',
    defaultType: 'textfield',
    bodyPadding: 10,
    items: [
        {fieldLabel: 'Field 1', reference: 'field1', publishes: 'value'},
        {fieldLabel: 'Field 2', reference: 'field2', publishes: 'value'},
        {
            fieldLabel: 'Field 3', 
            bind: {
                disabled: "{something}"
            }
        },            
    ],

}]

像这样向您的 ViewModel 添加公式配置:

formulas : {
        showSomeComponent : function (get) {
            return get('isAuthorized') && !get('isDisabled');
        }
    }

http://docs.sencha.com/extjs/5.1.0/Ext.app.ViewModel.html#cfg-formulas