Не уверен, почему мой подклассный элемент управления не отображается - PullRequest
0 голосов
/ 05 февраля 2011

Я пытаюсь создать подробную форму позиции в моем приложении.Я создал подкласс Ext.Panel с тремя элементами управления формой.Затем я начал добавлять этот элемент управления в мою видимую панель.Только один появляетсяДругие установлены на высоту 0. Вот код:

app.views.Forms.materialsLineItem = Ext.extend(Ext.Panel, {
    layout: {
        type: 'hbox',
        pack: 'center'
    },
    items: [
        new Ext.form.Spinner({
            width: 150
        }),
        new Ext.form.Text({
            placeHolder: 'Description',
            width: 400
        }),
        new Ext.form.Text({
            placeHolder: 'Price',
            width: 150
        })
    ]
});

app.views.Forms.Materials = new Ext.Panel({
    fullscreen: true,
    layout: {
        type: 'vbox',
        align: 'stretch'
    },
    items: [
        new app.views.Forms.materialsLineItem(),
        new app.views.Forms.materialsLineItem(),
        new app.views.Forms.materialsLineItem()
    ]
});

1 Ответ

1 голос
/ 06 февраля 2011

Хм, это работает, если вы объявляете компоненты формы, используя объектные литералы, например, так:

app.views.Forms.materialsLineItem = Ext.extend(Ext.Panel, {
    layout: {
        type: 'hbox',
        pack: 'center'
    },
    items: [{
        xtype: 'spinnerfield',
        width: 150
    }, {
        xtype: 'textfield',
        placeHolder: 'Description',
        width: 400
    }, {
        xtype: 'textfield',
        placeHolder: 'Price',
        width: 150
    }]
});

Я предполагаю, что ваш способ создал поля только один раз, и sencha не позволяет вам добавлять один и тот же компонент внесколько контейнеров, так что первые две панели на самом деле ничего не было в них.

Если вы посмотрите на элементы в консоли Chrome JavaScript, вы увидите, что первые две панели - просто пустые элементы div.

...