ExtJs按模型设置放射组项

ExtJs按模型设置放射组项,extjs,extjs5,Extjs,Extjs5,通过viewmodel设置单选按钮组的选定项时遇到一些问题。是否可以通过元素名称设置所选值?我希望viewmodel gender=true与第二个(“女性”)单选按钮匹配 Ext.application({ launch: function () { var form = Ext.widget('form', { renderTo: Ext.getBody(), viewModel: {

通过viewmodel设置单选按钮组的选定项时遇到一些问题。是否可以通过元素名称设置所选值?我希望viewmodel gender=true与第二个(“女性”)单选按钮匹配

Ext.application({    
    launch: function () {

        var form = Ext.widget('form', {

            renderTo: Ext.getBody(),
            viewModel: {
                data: {
                    gender: true
                }
            },

            items: [{
                xtype: 'radiogroup',
                fieldLabel: 'Gender',
                name: 'rbGender',
                defaults: {
                    flex: 1
                },
                layout: 'hbox',
                items: [{
                    boxLabel: 'Male',
                    name: 'gender',
                    inputValue: false,
                    id: 'radio1'
                }, {
                    boxLabel: 'Female',
                    name: 'gender',
                    inputValue: true,
                    id: 'radio2'
                }]
            }]

        });

    }
});

不,这在viewModel中是不可能的。viewModel始终依赖于配置,例如

绑定:{gender}

您不想绑定radio控件,而是想绑定radiogroup。您还需要将
radiogroup
设置为
simpleValue:true

工作示例:

viewModel: {
    data: {
        gender: false
    }
},

items: [{
    xtype: 'radiogroup',
    fieldLabel: 'Gender',
    name: 'rbGender',
    bind: '{gender}', // <- bind this field to the viewModel's "gender" value.
    simpleValue: true, // <- use a boolean, not an object.
    defaults: {
        flex: 1
    },
    ...

不,这在viewModel中是不可能的。viewModel始终依赖于配置,例如

绑定:{gender}

您不想绑定radio控件,而是想绑定radiogroup。您还需要将
radiogroup
设置为
simpleValue:true

工作示例:

viewModel: {
    data: {
        gender: false
    }
},

items: [{
    xtype: 'radiogroup',
    fieldLabel: 'Gender',
    name: 'rbGender',
    bind: '{gender}', // <- bind this field to the viewModel's "gender" value.
    simpleValue: true, // <- use a boolean, not an object.
    defaults: {
        flex: 1
    },
    ...

谢谢你的回答。我尝试了绑定的方法,但不知何故它不起作用:两个原因:1)您的ExtJS版本不理解simpleValue:true,并且没有等效项;2)在您的ExtJS版本中,radiogroup的
defaultBindProperty
与更高版本中的
值不同。我已经修改了我的答案。谢谢你的回答。我尝试了绑定的方法,但不知何故它不起作用:两个原因:1)您的ExtJS版本不理解simpleValue:true,并且没有等效项;2)在您的ExtJS版本中,radiogroup的
defaultBindProperty
与更高版本中的
值不同。我修正了我的答案。