1

コードにバグがありますが、何が問題なのかわかりません。NestedList のリーフ アイテムがタップされたときに、Store に新しい URL を設定しようとしています。ここに私の店があります:

Ext.define('Application.store.DetailStore', {
extend: 'Ext.data.Store',

config: {
    model: 'Application.model.DetailModel',
    autoLoad :true,
    sorters: 'title',
    grouper : function(record) {
        return record.get('title')[0];
        },

   proxy: {
    type: 'ajax',
    url : '/data/data1.php',
   reader: {
   type: 'json',
  rootProperty:'recipes'}
         } 
}

});

そして、これは NestedList の leafitemtap の私のリスナーです:

onLeafItemTap: function(nestedList, list, index, node, record, e) {
    filter = record.get('text');
    var detailCard = nestedList.getDetailCard();       
    Ext.getStore('Application.store.DetailStore').getProxy().setUrl('/data/data2.php');
    Ext.getStore('Application.store.DetailStore').load()
}

この後、リーフアイテムをタップできず、詳細カードが表示されません。誰が何が間違っているのか知っていますか?

4

1 に答える 1

0

以下では、getMain メソッドを使用して、リーフ アイテムがタップされ、ストアが読み込まれたときに、detailCard をリストの一番上にプッシュしました。また、getMain を参照として使用して、コントローラーで leafitemtap ロジックを定義していると仮定しています。

「Application.store.DetailStore」の代わりに storeId を使用することもできます。

        Ext.getStore('Application.store.DetailStore').setProxy({
        type: 'ajax',
        url: '/data/data2.php'
    }).load({
        callback: function(records, operations, success) {
            if (success = true) {
                this.getMain().push({
                    xtype: 'detailsCard',
                    data: record.getData()
                })
            } else {
                Ext.Msg.alert('Error', 'Something went wrong!', Ext.emptyFn);
            }
        },
        scope: this
    });
于 2012-06-19T23:22:51.520 に答える