【问题标题】:Extjs how to use config property inside itemExtjs如何在项目内使用配置属性
【发布时间】:2019-09-05 13:18:17
【问题描述】:

我有这个

Ext.define('MyComp', {
    extend: 'Ext.container.Container',

    id: 'myid',
    alias: 'widget.myid',
    xtype: 'myid',

    layout: {
        type: 'hbox'
    },

    config: {
        mydata: 'Hi there!!!'
    },

    items: [
        {
            xtype: 'textfield',
            name: 'name',
            fieldLabel: **this.config.mydata**, // this is what I need to do
            labelWidth: 100,
            labelAlign: 'right'
        },
        {
            xtype: 'button',
            text: 'Go',
        }
    ],

    constructor: function () {
        this.callParent(arguments);
    },

    initComponent: function () {
        this.callParent(arguments);
    }
});

如何使用config.mydata 文本作为字段标签?我尝试了this.getView().config.mydata 和一种组合,但没有成功。我怎样才能实现这个目标?

【问题讨论】:

    标签: extjs


    【解决方案1】:

    您无法读取容器的配置,因为容器未呈现,因此无法在其任何子组件中访问 config.mydata

    现在我提出 3 种方法可以实现这一目标:

    请参阅this 链接以获取#1、#2 的小提琴。

    1- 渲染子组件后需要分配这个标签(在小提琴中显示为方式1),如下所示:

    listeners:{
                  //Way 1
                  render:function(labelCmp){
                     var config=Ext.getCmp('parentPanel').config; //Get parent cmp
                     labelCmp.setText(config.mydata); // Assign label from parent cmp
                  }
               }  
    

    2- 一旦父项和子项被渲染后分配标签(在小提琴中显示为方式 2),如下所示:

    listeners: {
                 //Way 2
                 boxready: function () {
                    var config = this.config; //Get parent config
                    Ext.getCmp('labelCmp').setText(config.mydata); //Assign label to child cmp
                 }
              }
    

    3- 使用Ext.apply 方法。它的引用已在您的question's answer 之一中给出。

    您可以使用适合您的应用程序的任何一种方式。如有任何查询,请还原。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多