0

私はsenchaが初めてで、次のようにいくつかのテンプレートを作成しようとしています:

モデル:

Ext.define("GS.model.Oferta", {
        extend : 'Ext.data.Model',
        config : {
            fields : [{
                        name : "type",
                        type : "string"
                    }, {
                        name : "logo",
                        type : "string"
                    }, {
                        name : "description",
                        type : "string"
                    }, {
                        name : "product",
                        type : "string"
                    }]
        }
    });

店:

Ext.define("GS.store.BoxStore", {
        extend : 'Ext.data.Store',

    config: {
        storeId: 'boxStore',
        model : 'GS.model.Oferta',
        proxy : {
            type : 'ajax',
            url : 'TestData.json',
                reader: {
                    type:'json',
                    rootProperty: 'dataArr'
                }
        },
        autoLoad : true
    }
    });

Xテンプレート:

Ext.define("GS.view.Box", {
        extend : 'Ext.Panel',
        requires : ['Ext.form.FieldSet'],
        layout : {
            type : 'absolute'
        },

        config : {
            tpl : Ext.XTemplate.from('tp1'),
            data:{}
        }

    });

コントローラ:

Ext.define('GS.controller.Main', {
 extend: 'Ext.app.Controller',
store: 'boxStore',

config : {
    stores: ['BoxStore'],
    models: ['Oferta'],

    refs : {????
    ????????    },
    control : {
??????????
        }
    }
},

    getData: function(list, index, element, record){
    this.getBox().push({
        xtype: 'panel',
        data :[record.get('type'), record.get('logo'), record.get('logo'),     record.get('product')],
        scrollable: true,
        styleHtmlContent: true
    });
},
//called when the Application is launched, remove if not needed
launch: function(app) {

}
});

HTML:

            <textarea id='tp1' class="tp1">
           <div class="product_small">
             <div class="type" id"type">

             </div>
             <div class="logo"><img src="resources/images/garbarino_logo.png" />
             </div>
             <div class="small_description">
                    Lorem ipsum dolor sit amet, consectetur adipiscing elit.
             </div>
             <div class="product">
                 <span style="color:rgb(0,193,209); font:bold 35px/40px Tahoma,Verdana;">1.700</span><span style="color:rgb(0,193,209); font:bold 13px/20px Tahoma,Verdana;"> puntos</span>
             </div>
            </div>
        </textarea>

テンプレートに入力するにはどうすればよいですか? コントローラーでボックスを作成してそこに設定する必要がありますか?

どうもありがとうイグナシオ

4

1 に答える 1

1

tpl のデータを直接更新したい場合は setData メソッドを使用します。それ以外の場合は、Ext.Panel の代わりに Ext.DataView を使用して、データビューをストアに直接リンクすることをお勧めします。正確に何が必要かを判断するのは困難です - あなたのコード例は、新しいパネルを getBox (おそらくテンプレートを持つコンポーネント) にプッシュすることを示していますが、テンプレートを持たないその新しいパネルにデータを設定しようとしています。

于 2012-12-05T05:13:07.387 に答える