0

まず、この正確なことについて、いたるところにたくさんの質問があります。私は 1 日の大半を費やしてそれらすべてを読みましたが、明らかにまだこれを理解できていません。

(標準の ajax 呼び出しではなく) httprequest からストア データを取得していますが、これは機能しており、データをストアに追加しています。しかし、私が何をしようとしても、このデータはリストに入力されません。現在、私のコードは次のようになります。

モデル:

Ext.define('estarCamera.model.Event', {
    extend: 'Ext.data.Model',
    config: {
        fields: [
            'Id',
            'Title',
            'Content',
            'Image',
            'Location',
            'Latitude',
            'Longitude',
            'Radius',
            'Starts',
            'Expires',
            'Prestart'
        ]
    }   
});

店:

Ext.define('estarCamera.store.Events', {
    extend: 'Ext.data.Store',
    config: {
        model: 'estarCamera.model.Event',
        storeId: 'EventStore'       
    }
});

データがストアに入力されています:

 var jsonResponse = JSON.parse(xhr.responseText);

 if(jsonResponse.status == "Success"){
//Success
var eventsJsn = JSON.parse(jsonResponse.message);
$.each(eventsJsn, function(){
    $.each(this, function(k,v){
        //Events root element
        $.each(this, function(k,v){
            //Each 'Event' element
            var eStore = Ext.getStore('EventStore');
            eStore.add({
                Id: this.ID,
                Title: decodeURIComponent(this.Title),
                Content: decodeURIComponent(this.Content),
                Image: this.Image,
                Location: this.Location,
                Latitude: this.Latitude,
                Longitude: this.Longitude,
                Radius: this.Radius,
                Starts: this.Starts,
                Expires: this.Expires,
                Prestart: this.Prestart
            });
            eStore.sync();
        })
    });
});

理想的には、これは次のようになります。

Ext.define('estarCamera.view.Events', {
    extend: 'Ext.Panel',
    xtype: 'events',
    requires: [
        'estarCamera.store.Events',
        'Ext.form.FieldSet',
        'Ext.List'
    ],
    config: {
        title:'Events',
        iconCls: 'star',
        layout: 'vbox',
        items:[
        {
            docked: 'top',
            xtype: 'toolbar',
            title: 'Active Events'
        },
        {
            xtype: 'container',
            layout: 'fit',
            flex: 10,
            items:[{
                xtype:'list',
                title: 'Events',
                width: '100%',
                height: '100%',
                store: 'Events',
                styleHtmlContent: true,
                itemTpl: new Ext.XTemplate(
                    '<div class="outerEvent">',
                    '<h1>title{Title}</h1>',
                    '<p>{Content}</p>',
                    '</div>'                
                )
            }]
        }]      
    }
});

なぜこれが起こっているのか誰にも分かりますか?

4

1 に答える 1

0

わかりました、少しばかげていると感じています..最終的に(恥ずかしいほど長い時間の後)、これは私のリストが私の店の名前である「イベント」を参照しようとしていたためであり、それがどのように機能すると考えられていたかが原因であることがわかりました. これを「EventStore」(私のストアの storeid) に変更すると、完全に機能しました。

于 2013-07-22T23:10:13.787 に答える