在Sencha Touch中向Ext.Menu添加列表

时间:2014-03-05 14:37:03

标签: extjs sencha-touch

我有一个滑动菜单,我需要从JSON Feed动态添加按钮。你可以看到当前的静态按钮var items,但我是Sencha的新手,我在研究这个特殊的持有时遇到了很多麻烦。感谢

Ext.define('AIN.view.SlideNavigation', {
requires: ['Ext.Menu'],
singleton: true,
constructor: function(config) {
    this.initConfig(config);
},
setMenu: function() {
    Ext.Viewport.setMenu(this.createMenu('left'), {
        side: 'left',
        reveal: true
    });

    Ext.Viewport.setMenu(this.createMenu('right'), {
        side: 'right',
        reveal: true
    });
},

createMenu: function(side) {
    var items = [
        {
            xtype: 'button',
            text: 'Green',
            iconCls: 'star',
            scope: this,
            handler: function() {
                AIN.container.setActiveItem(2);
                Ext.Viewport.hideMenu(side);
            }
        }
    ];

    var className = 'Ext.Menu';

    return Ext.create(className, {
        items: items
    });
}
});

我的商店非常简单,看起来像这样。

Ext.define('AIN.store.Channels', {
extend: 'Ext.data.Store',
requires: 'Ext.data.proxy.JsonP',

config: {
    model: 'AIN.model.Channels',
    proxy: {
        type: 'jsonp',
        url: 'http://awebsite.com/app-feeds/channel-list',
        reader: {
            type: 'json',
            rootProperty: 'terms',
            record: 'term'
        }
    },
} 
});

谢谢

更新我的数据视图。

Ext.define('AIN.view.MyDataView', {
extend: 'Ext.dataview.DataView',
xtype: 'channellist',
config: {
    defaultType: 'mylistitem',
    useComponents: true
},
});

当我将这两行放在NavigationView中时,列表是完美创建的

xclass: 'AIN.view.MyDataView',
store: 'TestStore'

但是当我将它们添加到上面的Ext.Menu时,什么都没有出现。

1 个答案:

答案 0 :(得分:1)

使用数据视图上的useComponents配置查看DataItem类 - 这里有大量文档:http://docs.sencha.com/touch/2.3.0/#!/guide/dataview(“组件数据视图”部分)