extjs, как передать параметры из контейнера во вложенный контейнер - PullRequest
0 голосов
/ 24 апреля 2019

У меня есть два файла js, maincomp и nestedcomp.nestedcomp будет использоваться в качестве компонента многократного использования, и поэтому мне нужно отправить параметры в него.Этот файл maincomp:

Ext.define('mycomponents.maincomp', {
    extend: 'Ext.window.Window',

    itemId: 'maincomp',
    xtype: 'maincomp',

    modal: true,
    bodyPadding: 10,
    height: 350,
    width: 270,
    closeAction: 'destroy',
    resizable: false,
    renderTo: Ext.getBody(),

    requires: [
        'mycomponents.nestedcomponent'
    ],

    layout: {
        type: 'table',
        columns: 1
    },

    items: [
        {
            xtype: 'textfield',
            fieldLabel: 'Name',
            name: 'name',
            labelAlign : 'right',
            width: 265,
            allowBlank: false
        },
        {
            xtype: 'textfield',
            fieldLabel: 'Age',
            name: 'age',
            labelAlign : 'right',
            width: 265,
            allowBlank: false
        }
        {
            xtype: 'nestedcomp'
        }
    ]
});

и это мой файл nestedcomp:

Ext.define('mycomponents.nestedcomponent', {
    extend: 'Ext.container.Container',

    id: 'nestedcomp',
    xtype: 'nestedcomp',

    items: [
        {
            xtype: 'textfield',
            fieldLabel: 'Address',
            name: 'address',
            id: 'address',
            labelAlign : 'right',
            width: 265,
            allowBlank: false
        }
    ],

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

    initComponent: function () {

    }

});

Возможно, это очень наивный вопрос, но дело в том, что я понятия не имею, как передать параметры из maincomp до nestedcomp.Я зашел в официальную документацию и нашел ответ в Google, но мне не удалось найти решение для достижения этой цели, поэтому мой вопрос заключается в том, как передать параметры из одного компонента в его вложенные компоненты?

1 Ответ

1 голос
/ 25 апреля 2019

Я в основном передаю дополнительные параметры вложенному компоненту в initComponent:

Ext.define('mycomponents.maincomp', {
    extend: 'Ext.window.Window',

    itemId: 'maincomp',
    xtype: 'maincomp',

    modal: true,
    bodyPadding: 10,
    height: 350,
    width: 270,
    closeAction: 'destroy',
    resizable: false,
    renderTo: Ext.getBody(),

    requires: [
        'mycomponents.nestedcomponent'
    ],

    layout: {
        type: 'table',
        columns: 1
    },

    initComponent: function () {
        this.items = [
            {
                xtype: 'textfield',
                fieldLabel: 'Name',
                name: 'name',
                labelAlign : 'right',
                width: 265,
                allowBlank: false
            },
            {
                xtype: 'textfield',
                fieldLabel: 'Age',
                name: 'age',
                labelAlign : 'right',
                width: 265,
                allowBlank: false
            },
            {
                xtype: 'nestedcomp',
                abc: this.xyz
            }
        ];
        this.callParent(arguments);
    }
});

Или я просто делаю метод для этого представления в ViewController, например form.loadRecord(r), form.setValues(v), где форма - этоExt.form.Panel после визуализации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...