Sencha Extjs6 - 现代工具包 - Ext.Menu 中的 NestedList
Sencha Extjs6 - Modern toolkit - NestedList inside an Ext.Menu
我对 Sencha Extjs6 很陌生。我正在制作一个通用应用程序(现在专注于移动设备)并且我正在尝试将 NestedList 添加到菜单中。我有从左侧滑入的菜单,我可以显示 NestedList,但是当我向下钻取列表中的项目时会混淆吗? IE。它将显示父项及其子项。如果我单击回到根,那么当它应该只显示根项时,它仍会显示所有叶节点等。项目之间也没有幻灯片动画,所以这让我觉得目前不可能以这种方式使用它?
当我单独创建 NestedList(未添加到 Ext.Menu)时,它会按预期工作(类似于 KitchenSink 示例)。
这是我目前所拥有的:
MenuList.js
Ext.define('mobile.view.menu.MenuList', {
extend: 'Ext.NestedList',
xtype: 'menulist',
store: 'mobile.store.menu.MenuListStore',
controller: 'listcontroller',
displayField: 'text',
title: 'Menu',
width: '100%',
itemId: 'menulist',
layout: 'fit',
styleHtmlContent: true,
useTitleAsBackText: false,
backText: ' ',
scrollable: true
});
NavigationMenu.js 嵌套列表添加到此。
Ext.define('mobile.view.menu.NavigationMenu', {
extend: 'Ext.Menu',
xtype: 'navigation',
controller: 'navigation-controller',
renderTo: document.body
...
...
...
getMenuCfg: function(side) {
var me = this;
return {
items:[{
xtype: 'menulist'
}, {
text: 'Log out',
textAlign: 'left'
...
}]
}
}
MenuListStore.js
我有自己的数据,但我用汽车区域示例进行了尝试,但仍然没有改变行为。
Ext.define('mobile.store.menu.MenuListStore', {
extend: 'Ext.data.TreeStore',
config: {
model: 'mobile.model.menu.MenuItem',
root: {},
proxy: {
type: 'ajax',
url: 'resources/carregions.json'
}
}
});
MenuItem.js
Ext.define('mobile.model.menu.MenuItem', {
extend: 'Ext.data.Model',
config: {
fields: ['text']
}
});
简而言之,它在添加到视口时作为独立组件工作,但当我将它作为组件添加到菜单时则不然。任何帮助或指导都会很棒。非常感谢你们。 :)
我设法解决了。似乎删除布局:'fit' 让它工作。
我对 Sencha Extjs6 很陌生。我正在制作一个通用应用程序(现在专注于移动设备)并且我正在尝试将 NestedList 添加到菜单中。我有从左侧滑入的菜单,我可以显示 NestedList,但是当我向下钻取列表中的项目时会混淆吗? IE。它将显示父项及其子项。如果我单击回到根,那么当它应该只显示根项时,它仍会显示所有叶节点等。项目之间也没有幻灯片动画,所以这让我觉得目前不可能以这种方式使用它?
当我单独创建 NestedList(未添加到 Ext.Menu)时,它会按预期工作(类似于 KitchenSink 示例)。
这是我目前所拥有的:
MenuList.js
Ext.define('mobile.view.menu.MenuList', {
extend: 'Ext.NestedList',
xtype: 'menulist',
store: 'mobile.store.menu.MenuListStore',
controller: 'listcontroller',
displayField: 'text',
title: 'Menu',
width: '100%',
itemId: 'menulist',
layout: 'fit',
styleHtmlContent: true,
useTitleAsBackText: false,
backText: ' ',
scrollable: true
});
NavigationMenu.js 嵌套列表添加到此。
Ext.define('mobile.view.menu.NavigationMenu', {
extend: 'Ext.Menu',
xtype: 'navigation',
controller: 'navigation-controller',
renderTo: document.body
...
...
...
getMenuCfg: function(side) {
var me = this;
return {
items:[{
xtype: 'menulist'
}, {
text: 'Log out',
textAlign: 'left'
...
}]
}
}
MenuListStore.js 我有自己的数据,但我用汽车区域示例进行了尝试,但仍然没有改变行为。
Ext.define('mobile.store.menu.MenuListStore', {
extend: 'Ext.data.TreeStore',
config: {
model: 'mobile.model.menu.MenuItem',
root: {},
proxy: {
type: 'ajax',
url: 'resources/carregions.json'
}
}
});
MenuItem.js
Ext.define('mobile.model.menu.MenuItem', {
extend: 'Ext.data.Model',
config: {
fields: ['text']
}
});
简而言之,它在添加到视口时作为独立组件工作,但当我将它作为组件添加到菜单时则不然。任何帮助或指导都会很棒。非常感谢你们。 :)
我设法解决了。似乎删除布局:'fit' 让它工作。