我有一个滑动菜单,我需要从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时,什么都没有出现。
答案 0 :(得分:1)
使用数据视图上的useComponents配置查看DataItem类 - 这里有大量文档:http://docs.sencha.com/touch/2.3.0/#!/guide/dataview(“组件数据视图”部分)