2013-10-10 2 views
1

Я определяю панель имеет 2 вещи выглядят как http://jsfiddle.net/BB8Vu/Extjs4.1 - Как сделать элементы макета наследования родительского

Ext.define('Example', { 
    extend: 'Ext.panel.Panel', 
    border: false, 
    alias: 'widget.example', 
    items: [{ 
     fieldLabel: 'Age', 
     name: 'age', 
     xtype: 'numberfield', 
     minValue: 0, 
     maxValue: 100 
    }, { 
     xtype: 'timefield', 
     fieldLabel: 'Time', 
     name: 'time', 
     minValue: '8:00am', 
     maxValue: '6:00pm' 
    }] 
}); 

И я с помощью этого в другой форме. Если эта форма не имеет макета, это верно. Но если я с помощью макета, как

Ext.create('Ext.form.Panel', { 
    title: 'Simple Form', 
    bodyPadding: 5, 
    width: 350, 
    url: 'save-form.php', 

    layout: 'anchor', 
    defaults: { 
     anchor: '100%' 
    }, 


    defaultType: 'textfield', 
    items: [{ 
     fieldLabel: 'First Name', 
     name: 'first', 
     allowBlank: false 
    },{ 
     xtype: 'example' 
    }], 
    renderTo: Ext.getBody() 
}); 

, что терпят неудачу выглядеть (ширина элементов в example не наследования родительского макета)

enter image description here

Как сделать пункты example наследования макета родителя. Благодарности

ответ

3

Продлить по умолчанию:

defaults: { 
    anchor: '100%', 
    layout: 'anchor', 
    defaults: {anchor: '100%'} 
}, 

видеть ваше updated JSFiddle

Примечание что макет конфигурации получить только обработанное на контейнере, а не на компонент, потому что компонент не имеет детей

+0

- это лучший способ изменить? или изменить 'Ext.define ('Example', {' лучше? – freestyle

+0

@freestyle Ну вы не можете наследовать, когда вы вставляете что-то в качестве дочернего, вы можете предоставлять только по умолчанию дочерние. Обратите внимание, что наследование предназначено для определения, а значения по умолчанию - для экземпляров. «Пример» - это определение класса, которое может содержаться (вставлено в контейнер) или может не содержаться (отображается в dom-узле). Теперь я рекомендую вам прочитать макет с ownerCt (если есть является одним) даже в то время, когда возможно, что это не так, как вы должны проектировать классы. В вашем случае макет определяется реализацией, поэтому пусть реализация справится с этим. – sra

Смежные вопросы