2

パネル内にローカリゼーションを実装しようとしているので、別のファイルからfieldLabelにアクセスできるようにするために、次のように定義しています。

 Ext.define('Ext.app.detailForm', {
        extend: 'Ext.form.Panel',
        id: 'cscForm',
       // frame: true, uncomment this to show blue frame background
        title: 'CSC Details :',

        //trying
        cscCode: 'CSC Code',

        bodyPadding: 5,
        layout: 'anchor',    // Specifies that the items will now be arranged in columns
        autoScroll: true,
        //width:1200,
        //height: 300,
        collapsible: true,
        fieldDefaults: {
            labelAlign: 'left',
            msgTarget: 'side'
        },

        items: [{
            columnWidth: 0.4,
            xtype: 'container',
            layout:'anchor',
            defaults: {
                labelWidth: 150
            },
            defaultType: 'textfield',
            items: [{
            xtype: 'container',
            layout: 'hbox',
            items:[{
                xtype: 'fieldset',
                columnWidth:1.5,
                layout: 'column',
                width:1050,
                defaultType: 'textfield',
                defaults: {
                labelWidth: 150,
                margin: '3 0 0 10'
                },
                items: [{
                    fieldLabel: this.cscCode,
                    name: 'CSCCode',
                    width: 500
                }, {.....

しかし、このパネルをレンダリングしようとすると、cscCodeのformLabelが表示されません。ここで間違っていることがありますか?

基本的に「this.cscCode」にアクセスできません

4

1 に答える 1

0

initComponent配列プロパティとしてではなく、関数で項目配列を定義する必要があります。配列プロパティで定義するthis.cscCodeと、 のスコープが間違っていますthis

Ext.define('Ext.app.detailForm', {
        extend: 'Ext.form.Panel',
        id: 'cscForm',
       // frame: true, uncomment this to show blue frame background
        title: 'CSC Details :',

        //trying
        cscCode: 'CSC Code',

        bodyPadding: 5,
        layout: 'anchor',    // Specifies that the items will now be arranged in columns
        autoScroll: true,
        //width:1200,
        //height: 300,
        collapsible: true,
        fieldDefaults: {
            labelAlign: 'left',
            msgTarget: 'side'
        },

        initComponent: function() {
          this.items = [{
            columnWidth: 0.4,
            xtype: 'container',
            layout:'anchor',
            defaults: {
                labelWidth: 150
            },
            defaultType: 'textfield',
            items: [{
            xtype: 'container',
            layout: 'hbox',
            items:[{ .....
               items: [{
                fieldLabel: this.cscCode,
                name: 'CSCCode',
                width: 500
            }, {.....
         }]
         this.callParent(arguments);
        }    
于 2012-10-29T22:56:34.130 に答える