【问题标题】:Extjs bind config variable to valueExtjs 将配置变量绑定到值
【发布时间】:2017-01-05 15:38:47
【问题描述】:

我有以下应用程序:https://fiddle.sencha.com/#view/editor&fiddle/1nmm。我正在使用 extjs 6。

连续双击事件后,我想打开一个新标签。新选项卡应包含一个表格,其中包含来自网格的信息。我的问题是,当我尝试绑定显示字段值时,输出为空(未显示任何内容)。

xtype: 'displayfield',
fieldLabel: 'Id',
bind: {
    value: '{record.data.ts_id}'
}

上面的“记录”声明如下:

config: {
    record: null,
    rowIndex: null
},

bind: {
    record: '{recordVM}',
    rowIndex: '{rowIndexVM}'
}

如何正确绑定显示字段的值?

【问题讨论】:

    标签: extjs extjs6 extjs6-classic


    【解决方案1】:

    两件事:

    1) 修改在 TabUIController 中向视图模型传递数据的方式:

    viewModel: {
        data: {
            record: record,
            rowIndex: rowIndex
        }
    }
    

    试图重新映射这些东西是没有意义的。

    2) 将视图中的绑定语句修改为value: '{record.ts_id}',绑定足够智能,可以在看到记录时钻入字段。

    【讨论】:

    • 它正在工作:here 是小提琴。我还有一些问题:似乎绑定到 displayfield 值时,可绑定变量是视图模型中的变量,而不是配置中的变量。如果您想在层次结构中进一步向下传递数据(例如,如果您有一个模态窗口),请使用 config 方法?如果没有,什么时候使用配置方法?
    【解决方案2】:

    试试这个:

    TabUIGrid.js

     bind: {
        store :'{users}',
        selection : '{myrecord}'
    },
    

    TabFormTest.js

    {
            xtype: 'displayfield',
            fieldLabel: 'Name',
            bind: '{myrecord.ts_name}'
        }, {
            xtype: 'displayfield',
            fieldLabel: 'Email',
            bind: '{myrecord.ts_email}'
        }
    

    我在你的小提琴上测试过,效果很好。

    【讨论】:

    • 是的,它正在工作,但有一个问题:here,当您打开一个新选项卡然后更改网格选择时,打开的选项卡中的信息也会发生变化。这是不受欢迎的行为。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-04
    • 2021-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多