列表之间的变量

时间:2012-05-21 20:22:15

标签: sencha-touch-2

我的问题是......我有一个由商店完成的列表,这个商店来自代理(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寻求帮助!!!

1 个答案:

答案 0 :(得分:0)

也许这会有所帮助: How to pass value from controller to data store in sencha touch

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);
},