ExtJS 4: Почему поля не появляются в моей пользовательской Ext.form.Panel? - PullRequest
0 голосов
/ 11 октября 2011

Я определяю класс, который расширяет Ext.form.Panel, но ни одно из полей не появляется, когда оно отображается (их нет даже в DOM).Что-то не так с определением класса таким образом?

Ext.define('myapp.view.admin.EditUserFormPanel', {    
    extend: 'Ext.form.Panel',

    requires: [
        'myapp.util.Logger'
    ],

    /**
     * Constructor, typically used to create any instance variables and declare
     * the events that this object may fire (if it is Observable). For more info
     * see http://goo.gl/rXpzO
     *
     * @param {Object} config (optional)
     */
    constructor: function(config) {
        var me = this; // http://goo.gl/QYYZm
        config = config || {};

        Log.info('Created '+me.self.getName());

        // Call the method we are overriding (i.e., the parent's constructor),
        // passing in all arguments that we have received via JavaScript's
        // standard "arguments" object.
        me.callParent(arguments);

        // Apply default config settings
        me.initConfig(config);

        me.items = [
            {
                type: 'textfield',
                fieldLabel: 'OpenID',
                name: 'openid'
            },
            {
                type: 'textfield',
                fieldLabel: 'First',
                name: 'firstName'
            },
            {
                type: 'textfield',
                fieldLabel: 'Last',
                name: 'lastName'
            },
            {
                type: 'textfield',
                fieldLabel: 'Email',
                name: 'email'
            }
        ];

        return me;
    }
});

Спасибо за любую помощь / совет.

Ответы [ 2 ]

1 голос
/ 11 октября 2011

Для представлений (видимых компонентов) (более подробно: все, что наследуется от Ext.Component), вы должны использовать initComponent вместо constructor для настройки вашего компонента.

Просто замените слово constructor на initComponent в вашем примере, и оно должно работать.

См. API для деталей о методе initComponent.

1 голос
/ 11 октября 2011

Я думаю, вам нужно будет использовать xtype: 'textfield' вместо type: textfield

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