6

実行時に新しく作成されたMenuItemを追加する必要があります。したがって、私のコードは現在次のようになっています。

var myMenu = myCmp.query('mymenu')[0]; // retrieve my only Menu object
var menuItem = Ext.create('Ext.menu.Item', {
    itemId: 'myItemId', text: 'textGoesHere'
});
myMenu.add(menuItem);

addこのメソッドを使用してアイテムを追加しています。ただし、実行時にはメニュー項目には何も起こりません。デバッグでは、新しいアイテムが実際にitemsMenuインスタンスの構成に追加されていることが示されていますが。

ただし、このremoveメソッドを使用すると、実行時に機能します。

質問:新しく追加されたMenuItemを実行時に表示するにはどうすればよいですか?私は何が欠けていますか?

更新:上記のコードは機能します。最後に作成されたmenuItemを削除して、ロジックをもう一度通過させる欠陥のあるswitchステートメントがありました。

4

1 に答える 1

5

コメントバンプアップ

OPは書いた

OK私は問題を追跡します。最後に作成されたmenuItemを削除して、ロジックをもう一度通過させる欠陥のあるswitchステートメントがありました。それでも、(config objを渡すことによって)同様に機能するので、あなたの答えを正しいものとしてマークします。


この例は機能します:

var menu = Ext.create('Ext.menu.Menu', {
   width: 100,
   height: 100,
   floating: false,  // usually you want this set to True (default)
   renderTo: Ext.getBody(),  // usually rendered by it's containing component
   items: [{
       text: 'icon item',
       iconCls: 'add16'
   },{
       text: 'text item'
   },{
       text: 'plain item',
       plain: true
   }]
});

menu.add({text:'test'});

よくわかりませんが、 APIによると、メニューを見るとメニューにはデフォルトのタイプのパネルがありますが、menuitemAPIによるとmenuitemのようです。これは少し混乱するかもしれません。

于 2012-09-14T11:06:40.203 に答える