2

我的问题是......我有一个由商店完成的列表,这个商店来自代理(json)。当我点击列表中的一个项目时,我需要一个详细信息,而这个详细信息来自另一个 json。

例如:

ArtistList 和 ArtistDetail

当我单击艺术家列表的一个项目时,我需要调用

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

};

求救!!!

4

1 回答 1

0

也许这会有所帮助: 如何在 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);
},
于 2012-09-10T22:14:03.640 回答