如何绑定组合框显示值?

时间:2016-06-13 11:57:49

标签: extjs extjs6

如何将组合框的名称(即显示文字)绑定到其他组件?

我有一个名为' combo'的组合框,我在其他地方的面板中有一个标签,用组合显示值更新自己。这两个小部件通过ViewModel绑定。

如果我设置这样的绑定:

combo.setConfig({bind: {value: bindName}};

然后标签将显示组合的(即。键)。

如果我这样做:

combo.setConfig({bind: {name: bindName}};

然后我收到此错误消息:

  

"无法在Ext.form.field.ComboBox上绑定名称 - 缺少setName   。方法"

我在组合框中经历了其他getter / setter方法但没有成功,尝试过:

  

combo.setConfig({bind:{name:displayField}};

     

combo.setConfig({bind:{name:rawValue}};

小提琴:https://fiddle.sencha.com/#fiddle/1bum

1 个答案:

答案 0 :(得分:2)

添加对组合的引用并绑定到选择:

Ext.define('MyApp.view.TestView', {
    extend: 'Ext.panel.Panel',
    layout: 'form',

    viewModel: {
        type: 'test' // references alias "viewmodel.test"
    },

    bind: {
        title: 'Hello {name} {theCombo.selection.name}'
    },

    items: [{
        xtype: 'textfield',
        fieldLabel: 'first name',
        bind: '{name}'

    }, {
        valueField: 'id',
        displayField: 'name',
        fieldLabel: 'last name',
        reference: 'theCombo',
        xtype: 'combo',
        bind: '{combo}',
        store: {
            fields: ['id', 'name'],
            data: [{
                "id": "1",
                "name": "Jonston"
            }, {
                "id": "2",
                "name": "Billson"
            }, {
                "id": "3",
                "name": "Wayneston"
            }]
        }
    }]
});