Sencha Touch 2 - моя форма не отображается - PullRequest
1 голос
/ 19 марта 2012

Я новичок в Сенча Touch.Я пытаюсь определить форму (потому что хочу повторно использовать ее), но мне не удается отобразить ее на экране.

Это мой код формы:

Ext.define('WSCP.view.form.PersonForm' , {
    extend: 'Ext.form.Panel'

    , requires: [
        'WSCP.view.text.IdText'
        ,'WSCP.view.text.FirstNameText'
        ,'WSCP.view.text.LastNameText'
        ]
    ,xtype: 'personform'

    ,config: {
        items: [{
            xtype: 'fieldset'
            ,title: 'Who are You'
            ,instructions: 'enter your data'
            ,items: [
                {
                    xtype: 'textfield',
                    name : 'firstName',
                    label: 'First Name'
                }
                ,{ xtype: 'idText' }
                ,{ xtype: 'firstNameText' }
                ,{ xtype: 'lastNameText' }
            ]
        }]
    }   

    ,initialize: function() {
        console.log('initialize form');
        this.callParent();
    }
});

Иэто код с моей точки зрения:

Ext.define('WSCP.view.HomeView' , {
    extend: 'Ext.Panel'


    ,xtype: 'homecard'

    , requires: [
        'WSCP.view.button.GetButton'
        ,'WSCP.view.button.GetOneButton'
        ,'WSCP.view.button.PutButton'
        ,'WSCP.view.button.PostButton'
        ,'WSCP.view.button.DeleteButton'
        ,'WSCP.view.form.PersonForm'
    ]

    ,config: {
        title: 'Home'
        ,iconCls: 'home'

        ,items: [
            {                
                xtype: 'titlebar'
                ,docked: 'top'
                ,title: 'Home'


                ,items: [
                    { xtype: 'getbutton' }
                    ,{ xtype: 'getOnebutton' }
                    ,{ xtype: 'putbutton' }
                    ,{ xtype: 'postbutton' }
                    ,{ xtype: 'deletebutton' }
                    ,{
                        text: 'Ping'
                        ,action: 'pingAction'
                        ,align: 'right'
                    }
                ]
            }   
                //WHY DOESN'T THIS WORK?
            ,{ xtype: 'personform' }
        ]
    }
});

Большое спасибо, Алекс

Ответы [ 2 ]

0 голосов
/ 19 марта 2012

Ваш «PersonForm.js» находится в правильной папке (WSCP / view / form)?

Кроме того, я могу ошибаться, но я думаю, что вы определяете новый псевдоним (xtype) следующим образом:

Ext.define('WSCP.view.form.PersonForm' , {
extend: 'Ext.form.Panel'

, requires: [
    'WSCP.view.text.IdText'
    ,'WSCP.view.text.FirstNameText'
    ,'WSCP.view.text.LastNameText'
    ]
**,alias: 'widget.personform',**

см. Документы Sencha

0 голосов
/ 19 марта 2012

Я могу повторить эту проблему здесь, когда я попробую это.

Эксперимент Я также пытался динамически добавить его в контроллер через ссылку и получил следующий результат

//WORKS var myPanel = new Ext.Panel ({<br> items :[......] }); this.get....().add(myPanel)

//DOESN"T WORK var myPanel = new Ext.form.Panel ({<br> items :[.......] }); this.get....().add(myPanel);

// НО РАБОТАЕТ var myPanel = new Ext.form.Panel ({
высота: 300, Предметы :[.......] }); this.get .... () добавить (MyPanel). `

Я получил Ext.form.Panel, работающий, когда я установил свойство высоты. По умолчанию это значение равно нулю в соответствии со спецификацией конфигурации. Если вы установите высоту, она работает там, где я сказал, что она не работает. см. но работает выше

...