【问题标题】:Dynamic textfield name in ExtJS formExtJS 表单中的动态文本字段名称
【发布时间】:2017-04-19 12:51:19
【问题描述】:

我有一个使用 Ext.Create 和 add() 方法动态创建子面板的面板。现在我必须在每个面板内设置唯一的字段名称。我正在尝试为其使用一些唯一 ID (myId) 参数,但我在提交表单时得到了 some_field[undefined]。

如何访问 myId 属性并在我的视图中的字段名称中使用它? https://fiddle.sencha.com/#fiddle/1u74

谢谢!

【问题讨论】:

  • 你不能像这样以声明形式使用它。您需要在闭包范围内捕获该变量。

标签: extjs textfield extjs6


【解决方案1】:

如果您想在面板中拥有动态自定义配置,我建议您在 initComponent 函数中构建面板。

     Ext.define('MyPanel', {
        extend: 'Ext.panel.Panel',
        initComponent: function() {
            var myid = this.config.myId; // <--- This is a custom config
            this.items = [
                {
                    xtype: 'textarea',
                    fieldLabel: 'Description',
                    name: 'descr['+ myid +']' // <--- Here it is used
                }
            ];
            this.callParent(arguments);
        }
    });

当面板被创建时,myId 被视为任何其他配置

    Ext.create('MyPanel', {
        myId: 10
    });

我已经使用您的面板在fiddle 中演示了这一点。请注意,在小提琴的两种情况下,name 都是一个字符串。例如,“descr[10]”是一个字符串,而不是引用一个数组。

【讨论】:

    猜你喜欢
    • 2014-11-16
    • 2021-10-27
    • 1970-01-01
    • 2013-01-31
    • 1970-01-01
    • 1970-01-01
    • 2015-07-17
    • 1970-01-01
    • 2018-04-01
    相关资源
    最近更新 更多