0

朝、

私はSenchaが初めてです。login.js に次のコードがあります。これは、削除サーバーの JSON ドキュメントからフォーム フィールドを取得します。データから配列を作成します。これを使用してフォームに入力できるようにする必要があります。

var url = 'http://domainxxx.net/';
loginFields = new Array();
Ext.onReady(function(){var theform = Ext.Ajax.request({
                                    url: url+'login',
                                    type: 'get',
                                    scope: this,
                                    dataType: "JSON",
                                    success: function(response){

                                        formFields = new Array();

                                        var numFields = Ext.JSON.decode(response.responseText).length;
                                        for (var inf=0;inf<numFields;inf++){
                                            afield = new Array();
                                            afield['xtype'] = 'textfield';
                                            afield['name'] = Ext.JSON.decode(response.responseText)[inf].Name;
                                            afield['itemId'] = Ext.JSON.decode(response.responseText)[inf].Name;
                                            afield['required'] = true;
                                            afield['description'] = Ext.JSON.decode(response.responseText)[inf].Description;
                                            afield['placeHolder'] = Ext.JSON.decode(response.responseText)[inf].Description;
                                            afield['maxlength'] = Ext.JSON.decode(response.responseText)[inf].Length;
                                            if(Ext.JSON.decode(response.responseText)[inf].Type == 1){afield['xtype']= 'passwordfield';}
                                            if(Ext.JSON.decode(response.responseText)[inf].Type == 0){afield['xtype']= 'emailfield';}
                                            loginFields.push(afield);    
                                        }

                                        console.log(loginFields);

                                    }
                                })
});

問題は、この変数を使用してフォームに入力することです。以下に示すように、フォーム構成に配置しようとしましたが、うまくいきませんでした。localStorage も使用してみましたが、どちらもうまくいきませんでした。

Ext.define('axis3.view.Login', {
extend: 'Ext.form.Panel',
alias: "widget.loginview",
requires: ['Ext.form.FieldSet', 'Ext.form.Password', 'Ext.Label', 'Ext.Img'],  config: {
    title: 'Login',
    itemId: 'loginform',

    items: [
                {
                    xtype: 'image',
                    src: Ext.Viewport.getOrientation() == 'portrait' ? 'images/logo.png' : 'images/logo.png',
                    style: Ext.Viewport.getOrientation() == 'portrait' ? 'width:271px;height:93px;margin:2em auto' : 'width:271px;height:93px;margin:2em auto'
                },
                {
                    xtype: 'label',
                    html: 'Login failed. Please enter the correct credentials.',
                    itemId: 'signInFailedLabel',
                    hidden: true,
                    hideAnimation: 'fadeOut',
                    showAnimation: 'fadeIn',
                    style: 'color:#990000;margin:5px 0px;'
                },
                {
                    xtype: 'fieldset',
                    title: 'Login',
                    items: [

    FORM VARIABLES IN HERE

                    ]
                },
                {
                    xtype: 'button',
                    itemId: 'logInButton',
                    ui: 'action',
                    padding: '10px',
                    text: 'Log In'
                }
    ],
    listeners: [{............

どんなアドバイスでも大歓迎です

4

1 に答える 1

1

Arrayの代わりに を使用していObjectます。と言うよりvar aField = new Array()、言ってvar aField = new Object()ください。

簡単に言うと、コンストラクターを使用する代わりにこれを行うこともできます。

var myArray = [];
car myObject = {};
于 2013-08-06T12:17:01.953 に答える