プロジェクトをExtJS4.0から4.1に移行しています。この写真はそれをすべて言います:
これが私がメニューを作成する方法です:
function addItems(items) {
var toolBarItems = [];
for (var i = 0; i < items.length; i++) {
var newItem = {
text: items[i].Name,
command: items[i].Command,
height: 24,
cls: 'toolbarbtn'
};
if (items[i].subItems === undefined || items[i].subItems === []) {
newItem.handler = clickToolbarItemHandler;
}
else {
newItem.menu = Ext.create('Ext.menu.Menu', {
items: addChildItems(items[i].subItems)
});
}
toolBarItems.push(Ext.create('Ext.button.Button', newItem));
}
return toolBarItems;
}
function addChildItems(subItems) {
var subMenuItems = [];
for (var i in subItems) {
var item = subItems[i];
var subMenuItem = {
text: item.Name,
command: item.Command,
shadow: false,
cls: 'toolbarbtn'
};
if (item.subItems === undefined || item.subItems === []) {
subMenuItem.handler = clickToolbarItemHandler;
}
else
subMenuItem.menu = Ext.create('Ext.menu.Menu', {
items: addChildItems(item.subItems)
});
subMenuItems.push(subMenuItem);
}
return subMenuItems;
}
これは4.0では発生しませんでしたが、なぜ今発生しているのかについての説明が見つからないようです。何かご意見は?
アップデート:
@Lolo:cssファイルを更新するように通知してくれてありがとう。
残念ながら、それは問題を解決しませんでした。
私は次のようにrenderToを追加しようとしました:
function addChildItems(subItems) {
var subMenuItems = [];
for (var i in subItems) {
var item = subItems[i];
var subMenuItem = {
text: item.Name,
command: item.Command,
cls: 'toolbarbtn'
};
if (item.subItems === undefined || item.subItems === []) {
subMenuItem.handler = clickToolbarItemHandler;
}
else
subMenuItem.menu = Ext.create('Ext.menu.Menu', {
//TODO: MIGV4
shadow: false,
renderTo: Ext.getBody(),
items: addChildItems(item.subItems)
});
subMenuItems.push(subMenuItem);
}
return subMenuItems;
}
また、サブメニューの配置の問題は解決しましたが、予期しないエラーが発生します。もう一度、写真はそれをすべて示しています:
このバグは、メニューを初めてレンダリングするときにのみ発生します。もう一度テストすると、問題なく動作します。
何かご意見は??