2

私の問題は...ストアによって完成されたリストがあり、このストアはプロキシ(json)から来ています。リストの項目をクリックすると、詳細情報が必要になります。この詳細情報は、別のjsonから取得されます。

例えば:

ArtistList と ArtistDetail

artistList のアイテムをクリックすると、への呼び出しが必要です

http://localhost/json-detail/45

別のアイテムをクリックすると...

http://localhost/json-detail/50 etc...

私の問題は、パラメーターを他のビューに送信できないことです...または、リストの概念にエラーがある可能性があります... :S

これは私のリストビューです:

var listaArtistas = {
        xtype: 'list',
        title: 'Artistas',
        height: 240,
        store: {
            autoLoad: true,
            fields: ['node'],
            proxy: {
                type: 'ajax',
                url: 'http://localhost/json-artistas',

                reader: {
                    type: 'json',
                    rootProperty: 'nodes'
                }
            }
        },
        listeners: {
            itemtap: function(lista,index,target,record,e,eOpts)
            {

                var artistDetail = new Ext.create('app.view.ArtistDetail');
                artistDetail.setArtistID('45');
                panelHomeNav.push(artistDetail);

            }
        },

        itemTpl: tpl

        };

これは私の詳細です:

Ext.define('app.view.ArtistDetail',{
extend: 'Ext.Panel',
xtype: 'artistdetail',
style: "background-image:url('/resources/images/fondoartista.png');",

config:{
    title: 'Artistas',
    iconCls: 'star',
    ArtistID: '',
    items:
    {
        title: 'Artistas',
        items: [artistDetailPanelContenedor]
    }
}});

そして、このようなものが必要です

var listaEspectaculo = {
        xtype: 'list',
        title: 'Artistas',
        store:
        {
            autoLoad: true,
            fields: ['node'],
            proxy: {
                type: 'ajax',
                url: 'http://localhost/json-artistasdetail/'+getArtistID, <<<<<<<<<<------ PROBLEM

                reader: {
                    type: 'json',
                    rootProperty: 'nodes'
                }
            }
        },
        listeners: {
            itemtap: function(lista,index,target,record,e,eOpts)
            {
                var eventDetail = new Ext.create('app.view.EventDetail');
                panelHomeNav.push(eventDetail);                 
            }
        },          
        itemTpl: tplEspectaculo

};

助けてTHx!!!

4

1 に答える 1

0

多分これは役立つかもしれません: senchatouchでコントローラーからデータストアに値を渡す方法

handler: function () {
    Ext.dispatch({
        controller: MyApp.controllers.controller,
        action: 'myActionOnController',
        id: e.get{'id'}
    });
}

「itemtap」からext.dispatchを呼び出すことができます。次に、コントローラーでパラメーターを使用して新しいビューを呼び出すことができます。次のようなものを使用することを忘れないでください。

myActionOnController: function (options) {
    var city = options.id; //if you want to use your parameters
    var newView = Ext.create('MyApp.view.viewOfSomething');
    this.getMain().push(newView);
},
于 2012-09-10T22:14:03.640 に答える